CGAL-6.0.1安装与编译(Win11 + vs2019 + CGAL 6.0.1)

1、前言

      CGAL是一款几何处理库,里面包含大量的几何计算算法以及点云数据处理算法。其中,整个CGAL的库使用教程,参考链接:CGAL 6.0.1 - Manual: Package Overview。其包含了多边形、几何处理、重建等等,如下图所示,感兴趣的小伙伴可自行阅读。

      同时,CGAL有专门针对点云处理的API,小伙伴可以自行阅读,链接如下:CGAL 6.0.1 - Point Set Processing: User Manual。包括了常见点云的法向量估算、聚类、上采样、配准等。因此,个人感觉,相比较PCL而言,CGAL更加强大。

      本次详细介绍CGAL的安装以及使用cmake进行编译,实现CGAL中案例能够使用。如果有小伙伴不想使用cmake配置CGAL环境,手动配置环境,可以参考之前的博客:https://blog.youkuaiyun.com/qq_32867925/category_12151796.html?spm=1001.2014.3001.5482

2 安装库

2.1 安装Boost

2.1.1 下载与安装

      Boost库下载地址为:https://sourceforge.net/projects/boost/files/boost-binaries/

      CGAL6.0.1需要boost的版本为1.72以上,本次下载的版本为1.73版本,然后下载具体版本需根据vs版本和位数来选择,14.0对应vc2015,14.1对应vc2017,14.2对应vc2019。因此,我下载的版本为:boost_1_73_0-msvc-14.2-64.exe,如下图所示。

      双击后,将提取的文件放入到一个目录下,如我放入D:\03_software\CGAL\libboost_1_73_0,如图所示

2.1.2 设置环境变量

      在系统变量中添加两个值,这方便cmake能够找到boost。两个系统变量分别为:BOOST_INCLUDEDIR、BOOST_LIBRARYDIR,其设置的路径参考如下。

     

     在增加两个系统变量后,将如下路径增加到系统环境变量Path中,如下图所示。

2.2 安装CGAL和GMP and MPFR libraries

2.2.1 下载

     链接:Download CGAL for Windows

点击Release后,进入下载页面,下载CGAL6.0.1与GMP and MPFR libraries。

      分别解压CGAL6.0.1与GMP and MPFR libraries,得到如下文件。

将auxiliary中的gmp文件夹,拷贝到CGAL-6.0.1中auxiliary文件夹下,如下图所示。

2.2.2 配置环境变量

     添加CGAL_DIR变量名,如下图所示:

      接着在path变量中添加新的环境变量,如下:

2.3 安装Qt

2.3.1 下载Qt     

      CGAL中有些案例,使用了Qt进行可视化展示,很多小伙伴希望自己编译后运行代码,有这个可视化功能,那么你一定得下载安装Qt。Qt的安装我就不详细介绍了,需要说一点的,CGAL6.0版本后,Qt需要6.0版本以上,5.x版本编译不行。而CGAL5.x版本的,只需要安装Qt5.x版本即可。

      Qt5.x版本是离线版本,即有完整的安装包,如下所示,本人已测试Qt5.14.2来编译CGAL-5.2.1,是可行的。

       Qt6.x版本是在线版本,即在安装时下载相应文件进行安装。选择如下在线版本,下载链接:Index of /official_releases/online_installers

      安装Qt6.6版本时,选择了MSVC 2019 64-bit,具体选项参考如下。

2.3.2 环境配置

   添加系统变量QTDIR及值,如下所示:

     

同时在Path变量中添加新的变量,如下:

2.3.3 VS中配置Qt

在配置完所有库后,一定要重启电脑,否则后续可能报错!

3  cmake编译工程

     CGAL中所有使用案例均放在example文件夹下,使用cmake对其进行编译,即可运行给定案例,如下图所示。

3.1 Triangulation_2编译生成sln

      Triangulation_2是将点进行三角化,并进行可视化,官网中也给出了详细的介绍。打开cmake软件,在source code和build the binaries中,分别放入源代码所在路径,以及你想生成的工程所在路径,参考如下:

设置好之后,点击“configure”,设置要编译的vs版本和位数,分别为vs2019与x64。选择完之后,点击“finish”。

再点击“configure”,红色消失。再单击“generate”,即编译生成sln文件。

3.2 运行sln文件

     编译生成的Triangulation_2_Examples.sln文件,使用vs2019打开。找到draw_triangulation_2工程,右击并将其设置为启动项。

运行前,将draw_triangulation_2.cpp中数据加载路径进行修改下,如下所示。

报错提示:找不到gmp-10.dll。将D:\03_software\CGAL\CGAL-6.0.1-cmake\auxiliary\gmp\bin路径下的gmp-10.dll拷贝到该工程下exe路径下,如图所示。

最后运行结果如下:

参考博客:

【1】CGAL-5.2.1的安装与编译(Win10+vs2019+CGAL-5.2.1)_cgal 编译-优快云博客

生成开始于 0:28... 1>------ 已启动生成: 项目: TestOpenGL, 配置: Release x64 ------ 1>AmbientLight.cpp 1>CncEngine.cpp 1>E:\临时项目\CGAL\TestOpenGL\TestOpenGL\CncEngine.cpp(450,7): error C2039: "generator_params": 不是 "CGAL::Named_function_parameters<CGAL::Surface_mesh<Geometry::Point_3>::Property_map<CGAL::Surface_mesh<Geometry::Point_3>::Vertex_index,CGAL::Point_3<Kernel_>>,CGAL::internal_np::vertex_point_t,CGAL::internal_np::No_property>" 的成员 1>E:\临时项目\CGAL\TestOpenGL\TestOpenGL\CncEngine.cpp(450,7): error C2039: with 1>E:\临时项目\CGAL\TestOpenGL\TestOpenGL\CncEngine.cpp(450,7): error C2039: [ 1>E:\临时项目\CGAL\TestOpenGL\TestOpenGL\CncEngine.cpp(450,7): error C2039: Kernel_=CGAL::Epeck 1>E:\临时项目\CGAL\TestOpenGL\TestOpenGL\CncEngine.cpp(450,7): error C2039: ] 1>(编译源文件“/CncEngine.cpp”) 1> E:\临时项目\CGAL\TestOpenGL\inc\CGAL-6.0.1\include\CGAL\Named_function_parameters.h(336,8): 1> 参见“CGAL::Named_function_parameters<CGAL::Surface_mesh<Geometry::Point_3>::Property_map<CGAL::Surface_mesh<Geometry::Point_3>::Vertex_index,CGAL::Point_3<Kernel_>>,CGAL::internal_np::vertex_point_t,CGAL::internal_np::No_property>”的声明 1> with 1> [ 1> Kernel_=CGAL::Epeck 1> ] 1>E:\临时项目\CGAL\TestOpenGL\TestOpenGL\CncEngine.cpp(451,25): error C2039: "delaunay_mesher": 不是 "CGAL::parameters" 的成员 1>(编译源文件“/CncEngine.cpp”) 1> E:\临时项目\CGAL\TestOpenGL\inc\CGAL-6.0.1\include\CGAL\Named_function_parameters.h(426,11): 1> 参见“CGAL::parameters”的声明 1>E:\临时项目\CGAL\TestOpenGL\TestOpenGL\CncEngine.cpp(451,25): error C3861: “delaunay_mesher”: 找不到标识符 1>(编译源文件“/CncEngine.cpp”) 1>E:\临时项目\CGAL\TestOpenGL\TestOpenGL\CncEngine.cpp(445,18): error C2440: “初始化”: 无法从“OutputIterator”转换为“bool” 1>E:\临时项目\CGAL\TestOpenGL\TestOpenGL\CncEngine.cpp(445,18): error C2440: with 1>E:\临时项目\CGAL\TestOpenGL\TestOpenGL\CncEngine.cpp(445,18): error C2440: [ 1>E:\临时项目\CGAL\TestOpenGL\TestOpenGL\CncEngine.cpp(445,18): error C2440: OutputIterator=std::back_in
03-15
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

点云实验室lab

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值