OpenCascade运行官方瓶子教程三点圆弧代码报未定义引用错误
OpenCascade 三点构造圆弧链接错误解决办法
错误本质
这是典型的C++链接阶段报错,你已经正确引入了对应的头文件所以编译阶段没有抛出异常,但链接器找不到GC_MakeArcOfCircle对应的实现二进制文件,和代码逻辑无关。
修复方案
1 添加对应模块依赖
GC_MakeArcOfCircle属于OpenCascade的TKGeomBase模块,你需要在编译配置中添加该模块的链接规则,此外该瓶子教程常用的基础依赖模块还包括:
- TKernel:OpenCascade核心基础模块
- TKG3d:3D几何数据模块
- TKGeomBase:几何构造工具模块
- TKBRep:边界表达拓扑数据模块
- TKTopAlgo:拓扑算法模块
2 不同开发环境的配置方法
命令行g++/clang编译
在编译指令末尾添加对应链接参数即可,示例:
g++ main.cpp -o bottle_demo -lTKernel -lTKGeomBase -lTKG3d
CMake项目管理
在CMakeLists.txt中添加OpenCascade全局依赖配置,无需单独指定模块:
find_package(OpenCASCADE REQUIRED) include_directories(${OpenCASCADE_INCLUDE_DIRS}) add_executable(bottle_demo main.cpp) target_link_libraries(bottle_demo ${OpenCASCADE_LIBRARIES})
Visual Studio开发
打开项目属性页,在「链接器-输入-附加依赖项」中添加对应模块的lib文件,比如TKernel.lib、TKGeomBase.lib,注意要保证lib的版本(32位/64位、Debug/Release)和你的项目配置匹配。
后续代码修正提示
链接问题解决后你还会遇到代码语法报错,GC_MakeArcOfCircle是构造工具类,不能直接赋值给几何句柄,需要调用其Value()方法获取构造结果,修改对应代码为:
Handle(Geom_TrimmedCurve) anArcOfCircle = GC_MakeArcOfCircle(aPnt2,aPnt3,aPnt4).Value();
内容的提问来源于stack exchange,提问作者Andy
相关产品推荐
相关产品推荐

