You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CGAL Surface_mesh_skeletonization编译错误排查与解决

解决VS2017中CGAL Surface_mesh_skeletonization示例编译错误的方案

我是刚从C#转到C++和CGAL的新手,按照官方指引完成CGAL安装后,基础的Hello World示例运行毫无问题,但编译Surface_mesh_skeletonization相关示例时碰了一堆钉子:

  • 报C2039错误:提示extract_mean_curvature_flow_skeleton不是CGAL的成员
  • 同时报错Matrix和Vector不属于CGAL::Default

一开始我试着添加#define CGAL_EIGEN3_ENABLED,但放在#include后面根本没用;移到所有头文件引用前又出现了LNK2019未解析外部符号的链接错误。我用的是VS2017,CGAL的基础库和包含目录都已经配置好了。

折腾了一阵后,终于通过以下四步解决了所有问题:

  • 下载解压EIGEN库,新建系统环境变量EIGEN_DIR,指向EIGEN的解压根目录
  • 在VS项目的「附加包含目录」中添加$(EIGEN_DIR)
  • 确保在所有CGAL相关的#include语句之前添加#define CGAL_EIGEN3_ENABLED
  • 在项目的「附加依赖项」里加上两个库:
    • $(CGAL_ROOT)\auxiliary\gmp\lib\libmpfr-4.lib
    • $(CGAL_ROOT)\auxiliary\gmp\lib\libgmp-10.lib

做完这些操作后,示例就能顺利编译运行了。

内容的提问来源于stack exchange,提问作者Oleksandr Korniienko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:51:16