Opencascade 7.6版本于2021年11月3日发布了, 本着尝鲜的想法, 下载编译使用. 以下是编译过程中需要注意的一些事项:
Opencascade 7.6默认配置是采用VC14 64位编译, 如果需要在vs2010(vc10) 32位下使用, 需要在vs2010环境下重新编译, 下面是需要修改的地方:
1. 第三方库. 在Opencascade源代码根目录下的custom.bat批处理中, 可以设置第三方库是否使用, 如下图所示:
默认时, 这些变量都是设置为true的, 但实际上不怎么用得上, 因此可以不进行编译, 这样运行时的也不再依赖这些第三方库. 设置为false即为关闭.
2. 设置完上面的批处理后, 在源代码根目录打开命令行窗口, 执行msvc.bat vc10 win32 debug 即可启动vs2010打开OCCT的源码工程, 并配置为debug编译环境. 编译时可以按模块编译. 在vs2010的工程中, 切换到"解决方案资源管理器"面板, 可以看到源代码已经按照模块进行了组织, 如下图所示:
各模块的层级和依赖关系如下:
1-FoundationClasses
2-ModelingData
3-ModelingAlgorithms
4-Visualization
5-ApplicationFramework
6-DataExchange
7- Draw
可以按照这个顺序依次编译各个模块. 按照上面的配置启动vs2010后, 可以正常编译完第1,2,3个模块, 在编译第4个模块, 即Visualizatioin模块时, 需要做一些修改才能编译下去.
3. Visualization模块的编译设置.
a. 右键Visualization模块下的TKService工程, 右键菜单选属性, 进入到TKService工程的属性页. 在"配置属性/C/C++/预处理器/预处理器定义"增加: HAVE_FREETYPE宏定义.
b. 右键Visualization模块下的TKD3DHost工程, 右键菜单选属性, 进入到TKD3DHost工程的属性页, 在"配置属性/VC++目录/包含目录"中添加:
D:\OpenCASCADE\OpenCASCADE7.6.0\opencascade-7.6.0\src\D3DHost\
PS: 注意下划线部分的实际位置.
4. Draw模块的编译设置.
a. 右键Draw模块下的TKD3DHostTest工程, 右键菜单选属性, 进入到TKD3DHostTest工程的属性页, 在"配置属性/VC++目录/包含目录"中添加:
D:\OpenCASCADE\OpenCASCADE7.6.0\opencascade-7.6.0\src\D3DHost\
D:\OpenCASCADE\OpenCASCADE7.6.0\opencascade-7.6.0\src\D3DHostTest\
PS: 注意下划线部分的实际位置.
5. 注意:
a. 编译debug版本时, 应在occt源码目录下打开命令行窗口, 执行"msvc.bat vc10 win32 debug"
b. 编译release版本时, 应在occt源码目录下打开命令行窗口, 执行"msvc.bat vc10 win32 release"
c. 按照以上的配置编译的occt依赖的第三方库只有一个freetype, Opencascade 7.6的custom.bat中默认配置的freetype为2.5.5版本的, 且自带的freetype版本为2.5.5 vc14 64位的版本的, 在vc10 32位下是用不了的, Opencascade 6.8版本自带的版本为2.5.3 vc10 32位的版本, 可以将2.5.3版本的freetype库拷贝到Opencascade 7.6第三方库目录下, 将名称改为freetype-2.5.5-vc10-32即可. freetype没有debug和release之分, 只有一个动态库, 为了减少依赖路径, 可以把freetype的动态库freetype.dll直接拷贝到occt的release版本和debug版本的dll目录即可.
d. Opencascade 7.6相对之前的7.4版本, 有部分函数接口有调整, 但都不是很大变换, 编译原来的工程出现错误时, 不用太担心, 找到错误位置, 看看原来版本的函数接口和新的函数接口的差异, 简单调整一下即可.