conda环境中cgal与cgal-cpp包的区别及libcgal-dev对应包确认
Conda环境下CGAL与CGAL-CPP包的区别及对libcgal-dev的覆盖性
一、cgal与cgal-cpp包的核心区别
- cgal包:是CGAL的完整发行版本,包含:
- C++核心库文件
- CGAL的Python绑定接口
- 配套工具、示例文档及全套依赖第三方库(如Boost、GMP等)
适合同时需要CGAL C++开发和Python接口的场景,但依赖项较多,易与现有conda环境产生冲突。
- cgal-cpp包:是CGAL的轻量C++核心子集,仅包含:
- 编译完成的CGAL C++动态/静态库文件
- 对应开发所需的头文件
不含Python绑定、额外工具及冗余依赖,体积更小,冲突概率更低,专注服务纯C++开发场景。
二、cgal-cpp是否覆盖libcgal-dev的内容
Linux系统中的libcgal-dev本质是CGAL的开发文件集合,包含头文件、库文件、CMake配置模块等,用于编译依赖CGAL的C++项目。
cgal-cpp包完全包含libcgal-dev的核心开发所需内容:
- 所有必要的CGAL头文件
- 编译好的动态链接库
- CMake配置模块(支持CMake项目自动查找CGAL)
对于COLMAP的编译需求而言,cgal-cpp提供的内容已完全足够,不存在关键文件缺失的情况。
补充建议
若此前安装cgal包出现冲突,选择cgal-cpp是更稳妥的方案,后续编译COLMAP时,CMake会自动识别conda环境中的CGAL库。若担心依赖不全,可检查conda环境是否已安装boost、gmp、mpfr这些CGAL的核心依赖(cgal-cpp通常会自动关联安装这些依赖)。
内容的提问来源于stack exchange,提问作者Damian Kopp
相关产品推荐
相关产品推荐

