目录

我的安装环境

OpenCasCade下载和安装

OpenCasCade编译、示例运行及使用

总结

我的安装环境:

Windows7 旗舰版 SP1 x64;

Visual Studio 2010 SP1;

OpenCasCade-6.7.1 源码包;

如图为OpenCasCade官方文档上列出的Requirements

注意 Visual Studio 的版本要求。

OpenCasCade下载和安装

请自行到OpenCasCade官网进行下载,我下载的是下面的那个源码包。(上面的是针对VS2008 预编译好的,可以直接使用,库文件什么的都已经生成好了。使用方法参见后文。)

解压后的OpenCasCade目录如图:

接下来,下载适合自己编译器版本的第三方库(官方下载地址):

Note:这里的第三方库都是根据相应的平台编译生成好的,直接下载解压即可使用。如果不从这里下,而是从各个第三方库的官网下载,则需要自己根据平台自行编译对应的版本,下面也会告诉你怎么自己编译生成。

OpenCasCade编译、示例运行及使用

1. 确保你下载安装了所有需要的第三方库(对照上图)

OCCT使用两种类型的第三方库:

强依赖(必须的):

  • Tcl/Tk 8.5 – 8.6;
  • FreeType 2.4.10 – 2.4.11.

弱依赖(可选的):

  • TBB 3.x – 4.x;
  • gl2ps 1.3.5 – 1.3.8;
  • FreeImage 3.14.1 -3.15.4.

安装强依赖的第三方库:

Tcl/Tk

新建一个occ3rdparty文件夹,专门用来放置第三方库。把下载的Tcl/Tk 解压到文件夹中。Tcl/Tk是之后运行 DRAW 测试程序所必须的。

FreeType

FreeType是3D窗口中,文字表现所必须的。解压下载的FreeType到occ3rdparty文件中即可。

如果你不是从上图适配过的第三方库链接下载的(是的跳过,比如你从其自身官网下载,则需要自己编译,方法很简单,打开工程目录freetype\builds\win32\vc20xx\freetype.sln中的项目工程,vc20xx 代表你的VS版本)。

选择生成配置:Debug 或 Release都可以。

生成项目,你会在目录freetype\obj\win32\vc20xx下找到生成的导入库文件(.lib)。(要注意导入库和静态链接库的区别,虽然它们的后缀都是.lib)

如果你想生成用于x64 平台的FreeType,则选择 Build – Configuration Manager,并通过复制x86平台上的配置来添加x64平台的项目配置。如图:

同时为 x64项目配置 更新输出文件目录:

同样,你会在目录freetype\x64\vc20xx下得到 x64 的导入库文件(.lib)。

骚等,还没完,接着用下面几步,我们要来生成FreeType的动态链接库文件(.dll)。

打开菜单 Project-> Properties-> Configuration Properties-> General,把 Configuration Type 改为 Dynamic Library (.dll).

编辑头文件 freetype\include\freetype\config\ftoption.h:

在第255行,去掉 FT_EXPORT  宏定义的注释,如下:

1

#define FT_EXPORT(x)   __declspec(dllexport) x

再次生成FreeType工程,最后你会在目录freetype \objs\release 或 \objs\debug 得到包含一个导入库(.lib)和动态链接库(.dll)。

如果你要生成x64版本的,则重复之前的方法。

安装弱依赖的第三方库

TBB

下载解压即可。

gl2ps

下载解压即可。

若不是从上述适配过的版本链接下载的,而是自己从gl2ps的官方网站进行下载的,则需要自己编译。

很简单,

在Visual Studio中打开项目文件 gl2ps_bin\gl2ps.sln。

  • 选择生成的配置选项

    • Choose Release to build Release binaries.
    • Choose Debug to build Debug binaries.
  • 选择生成的平台
    • Choose Win32 to build for a 32 bit platform.
    • Choose x64 to build for a 64 bit platform.
  • 编译生成该工程
  • 编译生成 INSTALL 工程

FreeImage

下载解压即可。

若不是从上述适配过的版本链接下载的,而是自己从FreeImage的官方网站进行下载的,则需要自己编译。

略麻烦:

  1. 解压下载的FreeImage到occ3rdparty目录。

    根据如此规则来重命名文件夹: freeimage-platform-compiler-building mode,其各个代表的意思为

    • platform 代表你的是 win32 还是 win64
    • compiler 代表的是 vc8 还是 vc9 还是 vc10 还是 vc11
    • building mode 代表的是 opt (release版本) 还是 deb (debug版本)
  2. 用你的Visual Studio 打开项目文件 freeimage\FreeImage.*.sln*。

    如果你的VS版本高于2008,则应用转换。

  3. 选择生成配置。

    • Release
    • Debug

    注意:

    如果你想生成 FreeImage 的 debug 版本,你需要重新命名FreeImage和FreeImagePlus工程中的以下文件:

    Project -> Properties -> Configuration Properties -> Linker -> General -> Output File

    1

    2

    FreeImage*d*.dll  to FreeImage.dll

    FreeImagePlus*d*.dll to FreeImagePlus.dll

    Project -> Properties -> Configuration Properties -> Linker -> Debugging-> Generate Program Database File

    1

    2

    FreeImage*d*.pdb  to FreeImage.pdb

    FreeImagePlus*d*.pdb to FreeImagePlus.pdb

    Project -> Properties -> Configuration Properties -> Linker -> Advanced-Import Library

    1

    2

    FreeImage*d*.lib  to FreeImage.lib

    FreeImagePlus*d*.lib  to FreeImagePlus.lib

    Project -> Properties -> Configuration Properties -> Build Events -> Post -> Build Event -> Command Line

    1

    2

    3

    4

    FreeImage*d*.dll     to FreeImage.dll

    FreeImage*d*.lib     to FreeImage.lib

    FreeImagePlus*d*.dll to FreeImagePlus.dll

    FreeImagePlus*d*.lib to FreeImagePlus.lib

    此外, 重命名FreeImagePlus工程里的相关配置:

    Project -> Properties -> Configuration Properties -> Linker -> Input -> Additional Dependencies

    1

    from FreeImage*d*.lib to FreeImage.lib

  4. 选择生成平台
    • Win32
    • x64
  5. 开始生成

    最终你会在目录freeimage\Dist folder 得到库文件(FreeImage.dll and FreeImage.lib) 以及 在freeimage\Wrapper\FreeImagePlus\dist 得到(FreeImagePlus.dll and FreeImagePlus.lib).

OpenCL ICD Loader

下载解压即可。

这个不建议自己到OpenCL ICD Loader官网下载编译,所以不介绍怎么编译生成。

 2. 使用Visual Studio建立OCCT

  1. 编辑脚本文件 custom.bat 来 定义你的环境:

    • VCVER – version of Visual Studio (vc8, vc9, vc10, vc11 or vc12), and relevant VCVARS path
    • ARCH – architecture (32 or 64), affects only PATH variable for execution
    • HAVE_* – flags to enable or disable use of optional third-party products
    • CSF_OPT_* – paths to search for includes and binaries of all used third-party products
  2. 接着运行 msvc.bat 脚本文件开始运行 Visual Studio。

    注意:  MSVC 工程文件是放在目录 adm\msvc\vc[9-12] 里的。二进制文件在 win32 或 win64 文件夹中.

  3. 建立生成项目

修改后我的custom.bat文件(改成了VS2010),要改的很多,尤其是头文件、导入库、以及动态链接库的目录,要逐一修改为你现在的目录(细心的童鞋可能会发现,其实如果开始第三方库直接放在OpenCasCade的根目录,且每个名字都重命名为 freetype-2.5.3-%VCVER%-%ARCH% 的形式,%VCVER%和%ARCH%代表的值参见上面,则后期在custom.bat上就没必要修改那么多了。。o(╯□╰)o):

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

@echo off

set VCVER=vc10

set ARCH=32

set "VCVARS=%VS100COMNTOOLS%..\..\VC\vcvarsall.bat"

set "PRODUCTS_PATH=%~dp0.."

rem Optional 3rd-parties switches

set HAVE_FREEIMAGE=true

set HAVE_GL2PS=true

set HAVE_TBB=true

set HAVE_OPENCL=true

set CHECK_QT4=true

set CHECK_JDK=true

rem Additional headers search paths

set "CSF_OPT_INC=D:\Program Files\opencascade-6.7.1\occ3rdparty\opencl-icd-1.2.11.0-32\include;D:\Program Files\opencascade-6.7.1\occ3rdparty\tcltk-86-32\include;D:\Program Files\opencascade-6.7.1\occ3rdparty\freetype-2.5.3-vc10-32\include;D:\Program Files\opencascade-6.7.1\occ3rdparty\freetype-2.5.3-vc10-32\include\freetype2;D:\Program Files\opencascade-6.7.1\occ3rdparty\freeimage-3.16.0-vc10-32\include;D:\Program Files\opencascade-6.7.1\occ3rdparty\gl2ps-1.3.8-vc10-32\include;D:\Program Files\opencascade-6.7.1\occ3rdparty\tbb43_20140724oss\include"

rem Additional libraries (32-bit) search paths

set "CSF_OPT_LIB32=D:\Program Files\opencascade-6.7.1\occ3rdparty\opencl-icd-1.2.11.0-32\lib;D:\Program Files\opencascade-6.7.1\occ3rdparty\tcltk-86-32\lib;D:\Program Files\opencascade-6.7.1\occ3rdparty\freetype-2.5.3-vc10-32\lib;D:\Program Files\opencascade-6.7.1\occ3rdparty\freeimage-3.16.0-vc10-32\lib;D:\Program Files\opencascade-6.7.1\occ3rdparty\gl2ps-1.3.8-vc10-32\lib;D:\Program Files\opencascade-6.7.1\occ3rdparty\tbb43_20140724oss\lib\ia32\%VCVER%"

rem Additional libraries (64-bit) search paths

set "CSF_OPT_LIB64=D:\Program Files\opencascade-6.7.1\occ3rdparty\opencl-icd-1.2.11.0-32\lib;D:\Program Files\opencascade-6.7.1\occ3rdparty\tcltk-86-32\lib;D:\Program Files\opencascade-6.7.1\occ3rdparty\freetype-2.5.3-vc10-32\lib;D:\Program Files\opencascade-6.7.1\occ3rdparty\freeimage-3.16.0-vc10-32\lib;D:\Program Files\opencascade-6.7.1\occ3rdparty\gl2ps-1.3.8-vc10-32\lib;D:\Program Files\opencascade-6.7.1\occ3rdparty\tbb43_20140724oss\lib\intel64\%VCVER%"

rem Additional (32-bit) search paths

set "CSF_OPT_BIN32=D:\Program Files\opencascade-6.7.1\occ3rdparty\opencl-icd-1.2.11.0-32\bin;D:\Program Files\opencascade-6.7.1\occ3rdparty\tcltk-86-32\bin;D:\Program Files\opencascade-6.7.1\occ3rdparty\freetype-2.5.3-vc10-32\bin;D:\Program Files\opencascade-6.7.1\occ3rdparty\freeimage-3.16.0-vc10-32\bin;D:\Program Files\opencascade-6.7.1\occ3rdparty\gl2ps-1.3.8-vc10-32\bin;D:\Program Files\opencascade-6.7.1\occ3rdparty\tbb43_20140724oss\bin\ia32\%VCVER%"

rem Additional (64-bit) search paths

set "CSF_OPT_BIN64=D:\Program Files\opencascade-6.7.1\occ3rdparty\opencl-icd-1.2.11.0-32\bin;D:\Program Files\opencascade-6.7.1\occ3rdparty\tcltk-86-32\bin;D:\Program Files\opencascade-6.7.1\occ3rdparty\freetype-2.5.3-vc10-32\bin;D:\Program Files\opencascade-6.7.1\occ3rdparty\freeimage-3.16.0-vc10-32\bin;D:\Program Files\opencascade-6.7.1\occ3rdparty\gl2ps-1.3.8-vc10-32\bin;D:\Program Files\opencascade-6.7.1\occ3rdparty\tbb43_20140724oss\bin\intel64\%VCVER%"

选择 项目->批生成->全选->生成 (网上很多说按照什么顺序来生成,告诉你,just let it go)如图:

接下来是漫长的等待。结束后你会发现OpenCasCade的根目录下多出了两个文件夹 win32 和 win64,什么意思我想大家都明白。里面及包含了我设置的VS2010开发环境下所生成的Debug(文件夹名后都会加个d)Release两个版本的导入库动态链接库。码代码,调试代码,肯定要用带d的了咯!

我编译的时候遇到了如下错误:

1

2

3

4

5

正在创建库 ..\..\..\win32\vc10\libd\TKService.lib 和对象 ..\..\..\win32\vc10\libd\TKService.exp

Font_FontMgr.obj : error LNK2019: 无法解析的外部符号 __imp__RegCloseKey@4,该符号在函数 "private: void __thiscall Font_FontMgr::InitFontDataBase(void)" (?InitFontDataBase@Font_FontMgr@@AAEXXZ) 中被引用

Font_FontMgr.obj : error LNK2019: 无法解析的外部符号 __imp__RegEnumValueA@32,该符号在函数 "private: void __thiscall Font_FontMgr::InitFontDataBase(void)" (?InitFontDataBase@Font_FontMgr@@AAEXXZ) 中被引用

Font_FontMgr.obj : error LNK2019: 无法解析的外部符号 __imp__RegOpenKeyExA@20,该符号在函数 "private: void __thiscall Font_FontMgr::InitFontDataBase(void)" (?InitFontDataBase@Font_FontMgr@@AAEXXZ) 中被引用

.\..\..\..\win32\vc10\bind\TKService.dll : fatal error LNK1120: 3 个无法解析的外部命令

谷歌了下,在 链接器 -> 输入 -> 附加依赖项 中添加 Advapi32.lib 即可。

也遇到了找不到“ft2build.h”的问题,尼玛!我明明在msvc.bat上加了相应的目录啊!也是醉了!

解决方法就是在 C/C++ -> 常规 -> 附加包含目录 添加目录”D:\Program Files\opencascade-6.7.1\occ3rdparty\freetype-2.5.3-vc10-32\include\freetype2″

具体方法如下:

设置的时候你可能会发现如图所示情况(工具-选项-VC++目录):

问谷歌,给的解决方法是,在属性管理器窗口,随便选择一个工程,点开选择Debug | Win32 – Microsoft.Cpp.Win32.user(这只是Debug | Win32版的配置更改,所有版本都要加上)

双击打开如图所示窗口,便可以进行设置了!

最后运行draw.bat脚本文件,你就可以看到示例窗口了!

3. 自己项目使用OCCT:

添加 附加包含目录 为:

1

"D:\Program Files\opencascade-6.7.1\inc";"D:\Program Files\opencascade-6.7.1\occ3rdparty\opencl-icd-1.2.11.0-32\include";"D:\Program Files\opencascade-6.7.1\occ3rdparty\tcltk-86-32\include";"D:\Program Files\opencascade-6.7.1\occ3rdparty\freetype-2.5.3-vc10-32\include";"D:\Program Files\opencascade-6.7.1\occ3rdparty\freetype-2.5.3-vc10-32\include\freetype2";"D:\Program Files\opencascade-6.7.1\occ3rdparty\freeimage-3.16.0-vc10-32\include";"D:\Program Files\opencascade-6.7.1\occ3rdparty\gl2ps-1.3.8-vc10-32\include";"D:\Program Files\opencascade-6.7.1\occ3rdparty\tbb43_20140724oss\include"

选择链接器 – 输入 – 附加依赖项,点击下三角,编辑,复制以下库到其中:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

TKVrml.lib

TKStl.lib

TKBrep.lib

TKIGES.lib

TKShHealing.lib

TKStep.lib

TKXSBase.lib

TKShapeSchema.lib

FWOSPlugin.lib

PTKernel.lib

TKBool.lib

TKCAF.lib

TKCDF.lib

TKernel.lib

TKFeat.lib

TKFillet.lib

TKG2d.lib

TKG3d.lib

TKGeomAlgo.lib

TKGeomBase.lib

TKHLR.lib

TKMath.lib

TKOffset.lib

TKPCAF.lib

TKPrim.lib

TKPShape.lib

TKService.lib

TKTopAlgo.lib

TKMesh.lib

TKV3d.lib

TKOpenGl.lib

TKBO.lib

添加 链接器 -> 常规 -> 附加库目录 (我把所有的lib文件都复制到了下面这个目录)

1

"D:\Program Files\opencascade-6.7.1\win32\vc10\libd"

到此,你的程序就可以使用OCCT了。

接着咱们运行下 x:\x\OpenCASCADE6.7.1\opencascade-6.7.1\samples\mfc\standard 目录下的 All-vc10.sln,随便运行一个,结果如图:

NOTE:运行前请把, ~\opencascade-6.7.1\samples\mfc\standard\win32\vc10\libd\mfcsample.dll 文件 复制到目录 ~\opencascade-6.7.1\samples\mfc\standard\win32\vc10\bind\

否则会报如下错:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

---------------------------

Microsoft Visual C++ Debug Library

---------------------------

Debug Assertion Failed!

Program: ...scade-6.7.1\samples\mfc\standard\win32\vc10\bind\Geometry.exe

File: d:\program files\opencascade-6.7.1\samples\mfc\standard\common\winmain.cpp

Line: 76

For information on how your program can cause an assertion

failure, see the Visual C++ documentation on asserts.

(Press Retry to debug the application)

---------------------------

中止(A)   重试(R)   忽略(I)

---------------------------

总结

整个过程其实不难,比起CGAL的开发环境搭建要简单很多,重要的是胆大心细,遇到问题分析原因,然后解决它。有问题请留言。


2014/12/8

根据网友反映的各种找不到dll文件问题,现添加如下内容,也是博主疏漏了。抱歉!

我的做法是把所有的dll文件(包括第三方库的)都复制到一个文件夹下,然后把此目录添加到用户环境变量PATH里。

当然,你也可以把所有的dll文件一股脑塞到system32或者syswow64里,但是不建议这么做。

感谢原作者的知识分享

本文转载自:http://www.zyh1690.org/opencascade-development-environment-set-up/

OpenCasCade开发环境搭建相关推荐

  1. Android环境搭建和Android HelloWorld—Android开发环境搭建

    Android_Android开发环境搭建-搭建Android的开发环境 1.我考虑先下载JDK7.0,在JDK的安装中,考虑一般SDK都是向上兼容的,于是选择了最高的版本7.0 这里是我总结的详细的 ...

  2. qt工程在linux系统里颜色显示错误_【飞凌嵌入式RK3399开发板试用体验】+QT开发环境搭建测试(二)...

    作者:飞扬的青春 在拿到开发板之后,已经体验了Android操作系统,接下来就是体验Linux下的开发,本次以QT的一个小案例来测试下. 首先是自己先搭建了一个Ubuntu18.04的虚拟机,使用真机 ...

  3. Go:分布式学习利器(1) -- 开发环境搭建 + 运行第一个go程序

    文章目录 为什么要学习 go 开发环境搭建 -- MAC 运行第一个go程序 go 函数的返回值设置 go 函数的命令行参数 为什么要学习 go 在如下几个应用场景的需求下产生了go: 超大规模分布式 ...

  4. 智能合约开发环境搭建及Hello World合约

    如果你对于以太坊智能合约开发还没有概念(本文会假设你已经知道这些概念),建议先阅读入门篇. 就先学习任何编程语言一样,入门的第一个程序都是Hello World.今天我们来一步一步从搭建以太坊智能合约 ...

  5. iPhone开发环境搭建全过程 iPhone手机开发内容,中文手册

    http://3g.edu.csdn.net/kecheng/iphone.html  iPhone手机开发内容 http://www.docin.com/p-34874880.html# iPhon ...

  6. python搭建numpy_python开发环境搭建及numpy基本属性-【老鱼学numpy】

    目的 本节我们将介绍如何搭建python的开发环境以及numpy的基本属性,这样可以检验我们的numpy是否安装正确了. python开发环境的搭建 工欲善其事必先利其器,我用得比较顺手的是Intel ...

  7. windows下pomelo开发环境搭建及JS乱码问题

    from: http://blog.csdn.net/wangqiuyun/article/details/9243263 最近一直在研究node.js这一块,为的就是使用网易的pomelo框架,学习 ...

  8. Android配置----Android开发环境搭建

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/3 ...

  9. JDK安装以及开发环境搭建

    无论是Java开发.J2EE以及Android开发搭建环境时JDK开发环境搭建及环境变量配置是必不可少的,这篇文章就来就分别介绍下JDK的下载以及不同平台的环境变量的配置. 1.安装JDK开发环境 官 ...

  10. 传智播客C/C++各种开发环境搭建视频工具文档免费教程

    传智播客作为中国IT培训的领军品牌,一直把握技术趋势,给大家带来最新的技术分享!传智播客C/C++主流开发环境免费分享视频文档中,就有写一个helloworld程序的示范.火速前来下载吧 所谓&quo ...

最新文章

  1. DataGrid和GridView单击背景变色双击颜色还原
  2. linux shell 打印当前行号
  3. C++用库 jsoncpp 解析 JSON
  4. 一种简单快捷的 java 热部署方式
  5. 面试中如何剔除“鱼目混珠”程序员?
  6. ODT .NET 详解之 SqlDataSource 访问 Oracle
  7. 提高学生对计算机学科学习兴趣的研究的结题报告,《如何在体育教学中运用体育游戏》的研究结题报告...
  8. 机器学习算法平台alink_机器学习-逻辑回归算法
  9. pacemaker+mysql+drbd
  10. 面试官:谈谈 Tomcat 请求处理流程,我一脸懵逼。。
  11. 谷歌翻译插件对大陆停止服务及其解决方案
  12. Win10没有Realtek高清晰音频管理器怎么办?
  13. CCD传感器成像、尺寸、曝光时间
  14. 制作双色调图像(RGB 颜色模式)
  15. PART 3.3 风控建模卡方分箱计算篇
  16. 无人机航拍全景图拍摄教程技巧分享
  17. Win7系统如何在线进行重装?在线一键重装Win7方法
  18. 获取手机指纹库指纹信息
  19. python3.8与pyinstaller_pyinstaller 3.5 在python 3.8 环境下出现不兼容的问题
  20. Google Map API使用谷歌地图api实现地点搜索功能

热门文章

  1. 曾辉机器人_工业机器人市占率5年来首现下滑 “春寒”中国产机器人如何突围?...
  2. python从外部传入参数_Python学习杂记_8_从程序外部传参的办法sys.argv
  3. mysql 8.0 (ga)_MySQL 8.0.20 GA 发布
  4. tcpip路由技术卷一_学网络拿高薪!「纯干货」IELAB路由技术问题总结1
  5. c语言学生教务管理系统,c语言教务管理系统.doc
  6. php 126怎么设置发送邮箱验证码,邮箱发送验证码(示例代码)
  7. Java虚拟机(JVM)初探
  8. Selenium学习笔记||三、BeautifulSoup
  9. 前端开发 - JQuery - 下
  10. Meteor在手机上运行