VS 下 Open Cascade Source Code 编译及自定义工程设置

来源:互联网 发布:魔法王座进阶数据文库 编辑:程序博客网 时间:2024/04/27 15:44

源码编译:

工程编译顺序:

  • Foundation Classes (file FoundationClasses.*)

  • Modeling Data (file ModelingData.*)

  • Modeling Algorithms (file ModelingAlgorithms.*)

  • Visualization (file Visualization.*)

  • Application Framework (file ApplicationFramework.*) 

  • Data Exchange (file DataExchange.*)

  • Draw (file Draw.*)

  • WOK (file WOK.*)

  • Wrappers (file Wrappers.*)

(* dsw for VC6; sln for VC7,8,9,...)

编译器设置: option中设置VC 工程的include file 和 lib file 的路径为Open Cascade安装目录下对应的文件夹。或者只对工程进行设置,设置Additional include directions 和 Additional lib directions 的路径。

其余设置默认。

编译源码。

编译源码时将系统语言设置为英语,不然会出现编译错误,源码中的部分字符好像有法文(不知道),中文系统语言容易出现乱码。


自定义工程设置:

编译器设置与编译源码时的设置方法相同。

在工程属性的linker中添加所需的lib file name,可参见Open Cadcade Samples中的工程设置;

前四个模块的生成的lib文件如下:

FoundationClasses:

TKernel.lib
TKAdvTools.lib
TKMath.lib
////////////////////////////////////
ModelingData:

TKG2d.lib
TKG3d.lib
TKGeomBase.lib
TKBRep.lib
/////////////////////////////////////
ModelingAlgorithms:

TKGeomAlgo.lib
TKTopAlgo.lib
TKBO.lib
TKPrim.lib
TKBool.lib
TKShHealing.lib
TKMesh.lib
TKFillet.lib
TKHLR.lib
TKFeat.lib
TKXMesh.lib
TKOffset.lib
////////////////////////////////////
Visualization:

TKService.lib
TKV2d.lib
TKV3d.lib
TKMeshVS.lib
TKNIS.lib
TKOpenGl.lib
///////////////////////////////////

工程属性中设置如下:

properties/C/C++/Preprocessor definition/ _DEBUG
                                                                   WNT
                                                                   CSFDB
                                                                   WIN32
                                                                   _WINDOWS
                                                                   _AFXEXT

WIN32必须添加,详见OCC 源码如下: Standard_Macro.hxx,ln 22 :

// check if WNT macro is not defined but compiler is MSVC
#if defined(_MSC_VER) && !defined(WNT)
#error "Wrong compiler options has been detected. Add /DWNT option for proper compilation!!!!!"
#endif

使用MFC 的 debug模式编译时时,将源文件中:

#ifdef _DEBUG
#define new DEBUG_NEW
#endif

注释掉。

Open Cascade中为大量的类重载了new 操作符,因此不能使用MFC 的 debug 版本的new 。

环境变量的设置,可采用安装时的默认设置。

网站上下载的Samples运行:

安装源码后,运行Open Cascade网站上下载的示例程序,会出现图形设备初始化的错误,因为此时的

环境变量CSF_GraphicShr为OCC安装目录下的TKOpenGl.dll路径,如

C:/OpenCASCADE6.3.0/ros/win32/bin/TKOpenGl.dll (安装时生成的路径)

因此需要将该环境变量的路径设置为当前Samples文件夹下TKOpenGl.dll的路径,即可正确运行。

执行自定义工程时,将CSF_GraphicShr设置为安装时的路径,(release 和 debug 的路径均可,与使用的lib 文件版本一致即可 )。