Opencascad 7.0编译问题

配置编译环境

以前的版本要么是手动配置custom.bat,要么是使用CMake配置。
7.0版本,最快最方便的方法是使用自带的genproj工具,这个工具有智能的UI界面,只需要选择你下载的第三方库目录,会帮你生成custom.bat.
不过这个工具会调用tcl/tk中的tclsh.exe
(注意:这个文件跟tclsh86.exe一样,就是换了个名字复制了一份)。
因此前提是要先安装tcl/tk.
具体的genproj使用方法很简单,详见官方文档:
https://www.opencascade.com/doc/occt-7.0.0/overview/html/occt_dev_guides__building_msvc.html

编译源码

按照上文的方法生成msvc工程后,仍然有可能无法编译通过。最可能的问题就是其生成的msvn宏无法正确识别。
CSF_OPT_INC这个宏,正确的应该是被替换为OCC以及第三方库的所有include目录。
如果路径不对,在msvn的工程配置中,手动将其替换成custom.bat里面的路径即可。
如图所示,我这里是这样的:
头文件目录
链接的时候如果找不到lib,也是类似的原因。

应用程序配置

编译通过后,你的项目会发生运行期间闪退的现象。
这是个版本升级的大坑。参见文档:
https://www.opencascade.com/doc/occt-7.0.0/overview/html/occt_dev_guides__upgrade.html
从6.9.0开始,OCC使用GLSL作为默认的渲染方式。因此你需要手动配置CSF_ShadersDirectory,也就是shader目录。
这个目录在scr/shaders。因此你应该把这个目录拷贝到自己的应用程序可执行文件所在的目录下,并且在你的程序初始化的时候加入如下代码:

int stat = putenv("CSF_ShadersDirectory=Shaders");
if (stat)
    printf("环境变量定义失败"); 

资源推荐

1、eryar大神的opencascad博客目录:
http://www.cppblog.com/eryar/archive/2014/11/16/208897.html
2、老版本(6.7)源码的手动编译方式:
http://www.zyh1690.org/opencascade-development-environment-set-up/

猜你喜欢

转载自blog.csdn.net/lsldd/article/details/52399495