Ubuntu 22.04下CGAL安装后编译示例失败的技术求助
CGAL编译错误解决方案
一、Triangulation_2示例:CGAL::qglviewer::Camera函数匹配错误
- 核心原因:QGLViewer依赖未正确安装或编译时未链接对应库,CGAL可视化模块需该库支持。
- 解决步骤:
- 安装QGLViewer依赖包:
sudo apt install libqglviewer-dev - 若用CMake编译,修改CMakeLists.txt确保引入CGAL的OpenGL和QGLViewer组件:
find_package(CGAL REQUIRED COMPONENTS OpenGL QGLViewer) include(${CGAL_USE_FILE}) target_link_libraries(your_target ${CGAL_LIBRARIES} ${CGAL_3RD_PARTY_LIBRARIES}) - 手动g++编译时,需显式链接相关库:
g++ your_code.cpp -o output -lCGAL -lCGAL_Core -lQGLViewer -lGL -lGLU -lQt5Core -lQt5Gui -lQt5Widgets - 若仍报错,重新安装CGAL并启用QGLViewer支持:
cd CGAL_build_dir cmake -DCGAL_ENABLE_QGLVIEWER=ON .. make && sudo make install
- 安装QGLViewer依赖包:
二、点云重建示例:SVD traits缺失错误
- 核心原因:SVD功能依赖线性代数后端(Eigen/BLAS/LAPACK),编译时未启用对应组件或缺失依赖。
- 解决步骤:
- 安装CGAL推荐的Eigen3库:
sudo apt install libeigen3-dev - CMake编译时引入Eigen组件:
find_package(CGAL REQUIRED COMPONENTS Eigen3) include(${CGAL_USE_FILE}) target_link_libraries(your_target ${CGAL_LIBRARIES} ${CGAL_3RD_PARTY_LIBRARIES}) - 手动编译时指定Eigen头路径:
g++ your_code.cpp -o output -lCGAL -lCGAL_Core -I/usr/include/eigen3 - 若使用BLAS/LAPACK替代Eigen,先安装依赖再配置CMake:
sudo apt install libblas-dev liblapack-devfind_package(CGAL REQUIRED COMPONENTS BLAS LAPACK)
- 安装CGAL推荐的Eigen3库:
通用排查建议
- 执行
cgaldemo验证CGAL基础安装完整性,无法启动则重新安装并确保依赖全部安装。 - 直接使用官方示例自带的CMakeLists.txt,避免手动配置遗漏组件。
- 确认CMake版本≥3.10,CGAL对CMake版本有最低要求。
内容的提问来源于stack exchange,提问作者Merve A
相关产品推荐
相关产品推荐

