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

本文档详细介绍了OpenCASCADE源码的编译步骤及注意事项,包括编译顺序、编译器设置、自定义工程配置等内容,并提供了常见问题的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

源码编译:

工程编译顺序:

  • 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 文件版本一致即可 )。

### OpenCV 人脸检测分类器文件路径 在使用OpenCV进行人脸检测时,通常会利用预训练好的级联分类器文件(通常是`.xml`格式)。这些文件包含了用于识别特定对象(如面部)的Haar特征或LBP特征。为了加载这些人脸检测模型,在代码中指定正确的文件路径至关重要。 对于基于Haar特征的人脸检测分类器而言,可以采用如下方式定义其路径: ```python face_cascade = cv.CascadeClassifier('path_to_xml_file/HaarCascade_frontalface_default.xml') ``` 这里的`path_to_xml_file`应当替换为实际存储XML配置文件的位置[^3]。如果是在本地环境中开发,并且已经下载好了对应的级联分类器文件,则应指明该文件的具体存放位置。例如,假设已从GitHub或其他资源获取到了名为`haarcascade_frontalface_default.xml`的文件并放置于项目的根目录下,那么上述语句中的路径部分就可以简化为此文件名。 另外,值得注意的是,随着OpenCV版本更新至4.x之后,官方不再随包提供`opencv_createsamples.exe`和`opencv_traincascade.exe`工具来创建自定义分类器所需的样本数据集以及训练新的分类器。因此推荐直接使用官方提供的现成分类器文件来进行快速应用开发[^4]。 当开发者希望找到默认安装后的OpenCV自带分类器文件夹时,可以通过以下方法尝试定位: - 对于通过pip安装的用户来说,默认情况下这些文件不会被包含进来; - 如果是从源码编译安装的话,可能会存在于`<opencv_source_directory>/data/haarcascades/`这样的相对路径之下; - 或者考虑访问第三方托管平台上的镜像站点,比如提到的一个例子位于https://gitcode.com/open-source-toolkit/506af[^1],从中下载所需资源。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值