eryar

PipeCAD - Plant Piping Design Software.
RvmTranslator - Translate AVEVA RVM to OBJ, glTF, etc.
posts - 603, comments - 590, trackbacks - 0, articles - 0

OpenCASCADE 的安装与编译

Posted on 2012-08-13 23:29 eryar 阅读(32162) 评论(38)  编辑 收藏 引用 所属分类: 2.OpenCASCADE

OpenCASCADE的安装与编译

The Installation and Compilation of OpenCASCADE

eryar@163.com

一、安装OpenCASCADE

可以从OpenCASCADE的官网上下载其安装包,可以选择最新的版本,下载网址为:

http://www.opencascade.org/getocc/download/loadocc/ 。如果只用其库来编程已经够了,安装好下载的安装包即可。若想对其进行调试,必须先把它编译成功。想编译通过,必须下载第三方库,因为OpenCASCADE中用到了第三方的工具。如:FreeImage为通用图形格式的支持;FreeTypeFtgl为对文字渲染的支持,包括对中文渲染的支持;gl2ps用来将渲染的内容转换为矢量图形输出,等等。第三方库都可以从官网上提供的链接来下载,因为不同的版本可能用到的第三方库的版本也不同,必须保持一致。下载地址为:

http://www.opencascade.org/getocc/download/3rdparty/ 。对于Windows操作系统下载各相应版本如下所示:

Products

vc8

vc9

vc10

32 bit

64 bit

32 bit

64 bit

32 bit

64 bit

Freeimage 3.14.1

zip

zip

zip

zip

zip

zip

Freetype 2.3.7

zip

zip

zip

zip

zip

zip

Ftgl 2.1.2

zip

zip

zip

zip

zip

zip

gl2ps 1.3.5

zip

zip

zip

zip

zip

zip

Qt

Qt 4.6.2

TBB

TBB 30_018oss

Tcl/Tk

ActiveTcl 8.5

有的时候编译通不过,可能报的错误就是第三方库的版本与安装好的OpenCASCADE的版本不一致造成的。把与编译工具相应版本的第三方库重新编译并放到相应的目录下就可解决问题。这也是OpenCASCADE推荐的方法,原文如下:The recommended way to do this is to download each of the third-party tools from its web site and build it using the relevant tools.

二、编译OpenCASCADE

OpenCASCADE6.5.0以后对编译环境的设置采用了批处理的方式。在安装完毕后的文件目录中有个ros的文件夹,其中有几个批处理文件:env.batenv_build.batmsvc.bat。打开这几个批处理文件,会发现它们就是在设置编译环境。早期版本是直接写到系统的环境变量中去,现在是运行批处理文件msvc.bat,根据不同的工具,输入以下参数,示例为:vc8 win32 Debug adm\win32\vc8\OCCT.sln。即运行命令切换到ros文件夹,输入下面的命令:msvc.bat vc8 win32 Debug adm\win32\vc8\OCCT.sln就可以启动整个项目,后面是一些选项设置,如使用的是VC8编译工具,平台为win32,输出为Debug。若是使用的Visual Studio 10则输入参数vc10 win32 Debug adm\win32\vc10\OCCT.sln即可,也很方便。

编译顺序也是非常重要的,必须按如下顺序进行:

1. Foundation Classes (file FoundationClasses.sln)

2. Modeling Data (file ModelingData.sln)

3. Modeling Algorithms (file ModelingAlgorithms.sln)

4. Visualization (file Visualization.sln)

5. Application Framework (file ApplicationFramework.sln)

6. Data Exchange (file DataExchange.sln)

7. Draw (file Draw.sln)

如下图清晰所示:

Compile order is important!

三、总结

编译成功后,可以为以后程序的调试打下基础;也可对OpenCASCADE有个大概认识。希望你也能编译成功。若有任何问题,可与我联系:eryar@163.com

 
视频:
OpenCASCADE Compilation   http://t.cn/RNKAMut

PDF版本:

OpenCASCADE Installation and Compilation: OpenCASCADE Installation and Compilation

Feedback

# re: OpenCASCADE 的安装与编译  回复  更多评论   

2014-10-26 21:59 by 谢谢
你好,十分感谢,还希望大侠能够提供一下 samples 的生成方式,我的老是报错

# re: OpenCASCADE 的安装与编译  回复  更多评论   

2014-10-27 18:18 by eryar
@谢谢
你好!

有时间写一个samples 的编译说明。
其实在samples\mfc\standard文件夹中的readme.txt中有详细说明,仔细看看就知道了。

# re: OpenCASCADE 的安装与编译  回复  更多评论   

2014-10-27 22:29 by 谢谢
非常感谢大侠回复,
通过你的方法我将框架编译成功,
samples其实我已经编译成功了,但是就是运行不了,老是报错, read me 里面的内容我也研究了一下,总感觉 samples\mfc\standard 文件下的 msvc.bat 跳转有问题,老是报 未找到相应文件, 然后我只能手动打开 samples\mfc\standard 文件夹下的 vs10
然后是编译报错 找不到头文件,没办法所有的都重新加载 原来的加载设置都删除,重新加载 win/vc9下的文件, 用新生成的 win/vc10 不能够通过编译,也找不到头文件,只能用vc9,最后花了好大功夫编译通过了,结果运行找不到dll文件,于是又将dll 复制到 window/system32 大费周章,错误在减少,但是最后还是不能运行, (说明,第一次安装好了后,直接运行deom是没有问题的,通过我的编译后,就不能运行了),希望大侠能明示, 谢谢大侠了

# re: OpenCASCADE 的安装与编译  回复  更多评论   

2014-10-27 22:49 by eryar
@谢谢
不客气。

运行Samples的方法,OpenCASCADE也在ReadMe.md文件中进行了说明:
2. Launching Open CASCADE Technology samples:
---------------------------------

To run the Open CASCADE Technology samples:

execute run.bat [vc8|vc9|vc10] [win32|win64] [Release|Debug] [SampleName]

To run the Animation sample:

execute run.bat vc8 win32 Debug Animation

因为OpenCASCADE的samples用到OpenCASCADE其他相关的dll,进而可能依赖一些第三方库,所以Samples程序只要能找到所有依赖的dll就可运行了,包括第三方库的dll。为了不影响机器的环境变量,用这种批处理的方式来运行例子也很方便的(这样就不需要将相关的dll复制到system32中去了)。

# re: OpenCASCADE 的安装与编译  回复  更多评论   

2014-10-29 19:41 by 谢谢
你好大侠,我的表达有问题,我的意思是 调试的时候出的问题,如何调试samples , 谢谢

# re: OpenCASCADE 的安装与编译  回复  更多评论   

2014-10-29 20:32 by eryar
@谢谢
将Samples编译成功后,编译方法如下:
3. Modifying and rebuilding samples:
--------------------------------------------

You can modify, compile and launch all sample projects in MS Visual C++ at once:

execute msvc.bat [vc8|vc9|vc10] [win32|win64] [Release|Debug]

To run all sample projects in MS Visual C++ at once:

execute msvc.bat vc8 win32 Debug

使用编译时的批处理启动Samples项目,并将你出错的Sample工程设置为当前Project,F5即可调试了。

# re: OpenCASCADE 的安装与编译  回复  更多评论   

2014-10-29 20:54 by 谢谢
msvc.bat vc10 win32 Debug

这个我执行了,但是找不到文件,报错
我是用的最新版的6.7.1 感觉 路径里面多了一个 //..//..//
好像是路径错了,我只好手动打开了,

msvc.bat vc10 win32 Debug
请问大侠 为什么老是找不到路径呢

# re: OpenCASCADE 的安装与编译  回复  更多评论   

2014-10-29 20:59 by eryar
@谢谢

路径不多,我6.7.1的Samples都可以正常编译。

是不是你的6.7.1的路径中包含了空格?

# re: OpenCASCADE 的安装与编译  回复  更多评论   

2014-10-29 21:08 by 谢谢
ok 非常感谢你的解答,我再做一下测试吧

# re: OpenCASCADE 的安装与编译  回复  更多评论   

2014-10-31 11:19 by 张三
把与编译工具相应版本的第三方库重新编译并放到相应的目录下就可
是什么意思呢?

# re: OpenCASCADE 的安装与编译  回复  更多评论   

2014-10-31 12:43 by eryar
@张三
就是OpenCASCADE编译时设置的第三方库所在的include/lib/bin相应的目录中。
如果用的批处理,编译好的lib/dll输出到批处理里面对应的目录。

# re: OpenCASCADE 的安装与编译  回复  更多评论   

2014-11-01 19:31 by 欧帅
帅eryar,我知道@谢谢是什么意思了,他的问题我也遇到了。我也是用VC10,而6.7.1默认面向VC9。
下载VC10的第三方类库设置好路径以后,七个类库可以通过编译,但想要运行例子(run.bat),必须先编译例子,即先运行mfc例子下的msvc,打击打开后提示“无法打开如下文件(接着是空白),无法加载文件”,因为看到的是空白,我也知道它指的的是缺少什么文件,进而无法加载对应的ALL-vc10.sln。我检查了env.bat和对应的msvc.bat,看着没有问题,不知道是不是@谢谢说的无法正确连接路径。
请问你遇到这个问题了吗?

在ReadMe.md里面最后有一句提示:make sure your PATH environment variable contains a directory, msdev.exe is located in.

# re: OpenCASCADE 的安装与编译  回复  更多评论   

2014-11-01 19:33 by 欧帅
更正
“打击” = “双击”
“我也知道” = “我也不知道”

# re: OpenCASCADE 的安装与编译  回复  更多评论   

2014-11-01 19:49 by eryar
@欧帅
OpenCASCADE6.7.1的Samples编译是有问题,我编译试过,需要修改opencascade6.7.1文件夹中的msvc.bat,修改如下内容:
rem Launch Visual Studio - either professional (devenv) or Express, as available
if exist "%DevEnvDir%\devenv.exe" (
rem start "" "%DevEnvDir%\devenv.exe" "%PRJFILE%"
start "%DevEnvDir%\devenv.exe" "%PRJFILE%"

与早期版本相比是多了个引号,将引号去掉即可。

# re: OpenCASCADE 的安装与编译  回复  更多评论   

2014-11-01 20:02 by 欧帅
解决。
什么都不说了,You're the most niubiable person I've ever seen.

# re: OpenCASCADE 的安装与编译  回复  更多评论   

2014-11-01 20:11 by eryar
@欧帅
:o)

# re: OpenCASCADE 的安装与编译  回复  更多评论   

2015-04-16 21:56 by 孤独剑
您好! 我安装opencascade 总是出错 不知什么原因
编译的时候有5个项目提示 无法解析的外部变量
还有 编译完之后 draw.bat无法运行
谢谢~

# re: OpenCASCADE 的安装与编译  回复  更多评论   

2015-04-16 22:04 by eryar
@孤独剑
Hi,

你好!

那就是必须的第三方库没有正确配置导致的错误。

如果是用opencascade安装包来编译,安装完成后,根据编译器及平台修改下custom.bat后,直接运行msvc.bat编译即可一次成功。

Best Regards,
Shing Liu

# re: OpenCASCADE 的安装与编译  回复  更多评论   

2015-04-29 11:06 by 佚名
您好,我安装编译了occ6.8,但draw.exe不能启动,提示0xc000007b错误,我的电脑win8 64位,网上查了一下,可能是需要dirextx9.0,但从网上下载的directx总被360检测出有病毒,不知博主可有好的解决方法推荐,谢谢

# re: OpenCASCADE 的安装与编译  回复  更多评论   

2015-04-29 21:29 by eryar
@佚名

Hi,

你好!

DRAWEXE依赖Tcl/Tk,occ的三维目前是用OpenGL显示,没有依赖DX3D的。
如果Tcl/Tk的库没有找到也可能报这种错误。

occ的做法是用批处理配置好环境变量后用draw.bat来启动Draw的,可以参考下这种方式。

Best Regards,
Shing Liu

# re: OpenCASCADE 的安装与编译  回复  更多评论   

2015-05-15 16:21 by 佚名
博主您好,很久以来一直关注您的博客,也请教过一些问题,但有一个问题我一直无法解决,就是自定义旋转原点的问题,occ每次旋转前总统计图元的形心,自动将旋转原点定在形心处,但有时为了观察局部图形,将图形放大后一旋转想观察的部分都飘到屏幕外,我如何能在不改变源码的情况下设定旋转点,比如一条线,本来绕线的中点旋转,我想观察其端部区域,如何将旋转点设在端点处,谢谢!

# re: OpenCASCADE 的安装与编译  回复  更多评论   

2015-05-17 11:45 by eryar
@佚名

Hi 佚名,

你好!

occ6.8之后引入了Camera类,你可以尝试下在处理鼠标事件的地方自己来调整camera,而不用occ的view中的旋转函数。

Best Regards,
Shing Liu

# re: OpenCASCADE 的安装与编译  回复  更多评论   

2015-05-18 09:55 by 佚名
确实有效.以前一直用6.3版本,刚接触6.8,对它的新特性还不熟悉,谢谢博主指导

# re: OpenCASCADE 的安装与编译  回复  更多评论   

2015-05-18 18:42 by eryar
@佚名

有效果就好!

客气了。

# re: OpenCASCADE 的安装与编译  回复  更多评论   

2016-03-03 10:40 by oneOfHUSTCAD
你好,我得MFC Sample编译通过了,但是在启动起来以后总是报:“Geometry.exe 中的 0x77b915ee 处有未经处理的异常: 0x00000000: 操作成功完成。”是抛出了Standard_Failure异常,各位有没有遇到过这种情况?

# re: OpenCASCADE 的安装与编译  回复  更多评论   

2016-03-03 15:07 by oneOfHUSTCAD
我知道了,"CSF_ShadersDirectory" 环境变量没设置好,导致到不到OpenGL所需要的文件夹“Shaders”

# re: OpenCASCADE 的安装与编译  回复  更多评论   

2016-03-03 21:06 by eryar
@oneOfHUSTCAD
嗯,如果用配置好的环境变量来启动例子,就不会出现这种问题了。

就像安装好的例子程序都是通过批处理文件启动的。

# re: OpenCASCADE 的安装与编译[未登录]  回复  更多评论   

2016-03-31 20:07 by 小鱼
有兴趣的联络我微信benzcn

# re: OpenCASCADE 的安装与编译  回复  更多评论   

2016-04-07 17:57 by yyy
为什么我的draw.bat提示 tkloop: error in tk initialization. tcl reported: invalid command name "tcl_find library"

# re: OpenCASCADE 的安装与编译  回复  更多评论   

2016-04-07 19:46 by eryar
@yyy
这是第三主库Tcl/Tk没有配置正确导致的。

# re: OpenCASCADE 的安装与编译  回复  更多评论   

2016-04-07 20:49 by yyy
@eryar
处理好了,之前把tcltk里面的两个dll复制到system32里了,删掉就好了,应该是和批处理命令里面定义的环境变量冲突了

# re: OpenCASCADE 的安装与编译  回复  更多评论   

2016-04-07 22:46 by eryar
@yyy
我是不喜欢去污染system32的,最多可以把相关库的dll路径加到环境变量path中去。

# re: OpenCASCADE 的安装与编译  回复  更多评论   

2016-08-22 13:18 by OCC_Study
楼主你好,我在编译的时候遇到2个问题:
1、配置好custom.bat后,通过msvc.bat启动VC,发现项目无法编译,原因是附加包含目录里面用到了宏CSF_OPT_INC,而打开宏目录,发现该宏的值只有一个路径opencascad\inc。
为解决这个办法,我只好手动把所有项目附加包含目录中的这个宏替换成custom.bat中的那长长的一大串目录,这样编译成功了,但不知道这样处理是否正确。
2、编译成功后在VC中运行DRAWEXE,能够成功;但是我想在win32/vc10/bind下直接运行,我把所有相关的DLL拷贝到了该目录,却提示
"couldn't read file "ddefault": no such file or directory"
我知道这个TCL/TK环境没有配置好导致的,问题是如何解决呢?

# re: OpenCASCADE 的安装与编译  回复  更多评论   

2016-08-22 19:15 by eryar
@OCC_Study
Hi,

你好!

1.custom.bat就是用来配置inc和lib的,如果你已经可以编译成功了, 就没什么影响;

2. 这是DRAW 的Tcl路径没找到报错,这个路径也是通过环境变量来配置的。
建议还是用批处理来启动DRAWEXE。

Best Regards,
Shing Liu

# re: OpenCASCADE 的安装与编译  回复  更多评论   

2019-03-25 11:26 by birds
博主您好,
我现在使用的是OCC7.2版本的,我试着编译打开MFC的案例,发现里面的贴图功能最后贴出来的图是黑色的(瓶子,地图,厨房被贴的地方都是黑色的),没有效果,不知道是什么原因?是我没配置好,还是OCC这方面功能还不完善?

# re: OpenCASCADE 的安装与编译  回复  更多评论   

2019-03-25 12:01 by eryar
@birds
Hello,

有可能是显卡支持的不好。
在Draw Test Harness中输入命令:
vglinfo
看看你的显卡信息。

On desktop, 3D viewer for optimal performance requires graphics processing unit (GPU) supporting OpenGL 3.3 or above. Ray tracing requires OpenGL 4.0+ or OpenGL 3.3+ with GL_ARB_texture_buffer_object_rgb32 extension. Textures within ray tracing will be available only when GL_ARB_bindless_texture extension is provided by driver.
On mobile platforms, OpenGL ES 2.0+ is required for 3D viewer (OpenGL ES 3.1+ is recommended). The ray tracing is not yet available on mobile platforms. Some old hardware might be unable to execute complex GLSL programs (e.g. with high number of light sources, clipping planes).
OCCT 3D Viewer, in general, supports wide range of graphics hardware - from very old to new. Therefore, if you observe some unexpected visual issues - first check for OpenGL driver update (or firmware update in case of mobile platforms); but beware that driver update might also come with new bugs. Don't forget to report these bugs to vendors.

# re: OpenCASCADE 的安装与编译  回复  更多评论   

2019-03-25 15:11 by birds
博主您好,
您能帮我看下吗,这是什么问题?
Draw[1]> pload ALL
1
Draw[2]> vinit
Driver1/Viewer1/View1
Draw[3]> vglinfo
OpenGL info:
GLvendor: ATI Technologies Inc.
GLdevice: AMD Radeon(TM) R7 350X
GLversion: 4.6.13547 Compatibility Profile Context 25.20.15025.1002
GLSLversion: 4.60
Max texture size: 16384
Max combined texture units: 160
Max MSAA samples: 8
Viewport: 409x409
GPU memory: 4096 MiB
ResolutionRatio: 1

# re: OpenCASCADE 的安装与编译  回复  更多评论   

2019-03-26 10:42 by eryar
@birds
可以按OCC文档上的说明,先更新显卡驱动试试。

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理