C++-CGAL5.5.1-Windows上使用流程-Vcpkg安装法和源码编译法


以下MS Visual c++编译器支持CGAL 5.5.1: 14.0, 15.9, 16.0, 17.0 (Visual Studio 2015, 2017, 2019和2022)。CGAL是一个必须首先安装的强制依赖库:Boost、GNU多精度算术(GMP)和GNU多精度浮点可靠(MPFR)库。您有两个选项来安装CGAL及其依赖项:您可以使用Vcpkg库管理器,它将在您安装CGAL时自动安装这些依赖项的适当版本,或者您可以按照它们各自的安装说明自行安装这些依赖项(确保您使用的是受支持的版本)。如果您选择使用vcpkg,您可能必须引导、下载并编译它,但从那时起vcpkg将使您的工作更轻松。另一方面,如果您需要使用特定的版本,或者已经安装了某个依赖项的特定版本,并且不希望潜在地安装多个版本,则需要使用CGAL源存档。
我们将在接下来的两个部分中解释这两种方法。

1.使用Vcpkg库管理器安装CGAL

1.1.安装Vcpkg

https://github.com/microsoft/vcpkg下载Vcpkg。
从命令行运行文件夹下脚本。

C:\dev\vcpkg> .\bootstrap-vcpkg.bat

1.2.安装CGAL

默认情况下,vcpkg安装32位二进制文件,并将使用安装在您机器上的最新版本的Visual c++。如果你开发64位软件,你必须将Windows环境变量VCPKG_DEFAULT_TRIPLET设置为x64-windows,或者在你想要安装的包名后面添加后缀:x64-windows(例如cgal:x64-windows)。如果你想编译旧版本的编译器,参考vcpkg官方文档。因为windows的vcpkg中的gmp有bug,你需要安装32位的yasm-tool,才能正确构建cgal所需的gmp 64位:

C:\dev\vcpkg> ./vcpkg.exe install yasm-tool:x86-windows

安装cgal。如下所示:

C:\dev\vcpkg> ./vcpkg.exe install cgal

这将花费几分钟,因为它将下载GMP, MPFR,所有的boost头文件,它将编译GMP和MPFR,以及几个boost库。之后,你会在子目录C:\dev\vcpkg\installed\x64-windows中找到包含文件、库和dll。注意,CGAL是一个只有头文件的库,因此没有用于CGAL的lib或dll文件。

1.3.案例

在本节中,我们将展示如何编译使用CGAL的程序。当您使用Vcpkg库管理器安装CGAL时,您在这些用户手册页面中找到的示例不会被下载。必须从以下下载页面单独下载:CGAL-5.5.1-examples.zip。假设您已经将该文件解压缩到主目录C:\Users\Me中,接下来我们将从2D Triangulation包中编译一个示例。

1.3.1.配置

在使用CGAL构建任何东西之前,您必须选择编译器/链接器,设置编译器和链接器标志,指定您想使用的第三方库以及在哪里可以找到它们。收集所有这些信息被称为配置,我们使用CMake作为配置工具(关于支持的版本和从哪里下载的更多信息,请参阅CMake节)。
这个过程的结束标志着生成一个Visual c++解决方案和一个项目文件,您可以用它来构建您的程序。

C:\Users\Me\CGAL-5.5.1> cd examples\Triangulation_2
C:\Users\Me\CGAL-5.5.1\examples\Triangulation_2> mkdir build
C:\Users\Me\CGAL-5.5.1\examples\Triangulation_2> cd build
C:\Users\Me\CGAL-5.5.1\examples\Triangulation_2\build> cmake-gui ..

命令cmake-gui启动cmake的图形界面。当你按下配置按钮时,你必须:
指定生成器(例如,Visual Studio 16 2019),
指定可选平台(例如,如果你想创建64位二进制文件,则使用x64),
select指定用于交叉编译的工具链文件(文件vcpkg. txt)例如:C:/dev/vcpkg/scripts/buildsystems/vcpkg.cmake)。
配置过程完成后,在cmake-gui中勾选高级和分组。您将看到头文件和库的来源条目。如果不需要调试,则应该将变量CMAKE_BUILD_TYPE设置为Release。

1.3.2.附加依赖关系

一些CGAL包还有其他依赖项。例如,在上面的配置过程中,您可能已经观察到以下消息:

NOTICE: The example draw_triangulation_2 requires Qt and will not be compiled

CGAL是一个算法和数据结构库,因此不依赖于Qt,但是Triangulation_2包中的一个例子确实需要Qt来实现可视化。如果您已经安装了Qt,您可以简单地填写请求的CMake变量和路径。否则,你也可以使用vcpkg安装它:

C:\dev\vcpkg> ./vcpkg.exe install qt5

如果目标是64位应用程序,请记住指定——triplet或相关的环境变量。由于Qt5是模块化的,而且CGAL示例和演示只使用其中一些模块,您可以通过指定安装选项来节省下载和编译时间:

C:\dev\vcpkg> ./vcpkg.exe install cgal[qt]

在这两种情况下,当您再次启动CMake -gui并点击Configure按钮时,关于Qt的CMake变量和路径现在应该被填充了。注意,并非所有可选依赖项都可以通过Vcpkg库管理器获得。在这种情况下,您必须独立下载和安装它们(有关支持版本和下载链接的信息,请参阅编译器和第三方依赖项页面),并在CMake界面中填充缺失的信息,直到配置成功(没有更多表示缺失依赖项的红线)。
配置过程成功后,点击Generate按钮,您将找到文件Triangulation_2_examples。c:\ users \ me \ cal -5.5.1\examples\Triangulation_2\build。双击它以打开它。目录中的每个.cpp文件都有一个项目。将它们全部编译,或者只编译你感兴趣的那个。

1.4.使用CGAL配置和编译代码

如果您使用cmake,那么配置和编译您自己的代码实际上与CGAL示例相同。运行cmake(或cmake-gui)需要一个CMakeLists.txt文件。CGAL的所有示例和演示都会自动提供这个文件。对于您自己的程序,建议您查看您正在使用的包的示例文件夹中的CMakeLists.txt文件,以学习如何指定CGAL和其他第三方依赖项。

2.从源码编译CGAL

CGAL-5.5.1.zip可从https://www.cgal.org/download/windows.html网站下载并解压。

2.1.安装GMP and MPFR

GMP和MPFR的预编译版本在GMP和MPFR库中提供,对于Windows 64位,可以从https://github.com/CGAL/cgal/releases获得。如果您只安装这些库来使用CGAL,那么您应该在解压缩CGAL压缩源归档时创建的CGAL-5.5.1目录中解压缩这个归档。通过这种方式,cmake将自动检测这些依赖项(然后您应该获得CGAL-5.5.1\auxiliary\gmp目录)。

2.2.安装Boost

Boost是CGAL的强制依赖项。Boost的二进制版本可以在SourceForge上找到。Boost安装程序同时安装Boost头文件和预编译库。请注意,CGAL项目不对本网站提供的文件负责。当CGAL 5.5.1发布时,Boost的最新版本是1.71。Boost的典型安装包括以下步骤:
下载并运行boost_1_71_0-msvc-XX.Y-64.exe文件。Y = 14.0 for VC 2015, XX。2017年,XX年Y = 14.1。对于VC 2019, Y = 14.2)。解压文件到一个新目录,例如c:\dev\libboost_1_71_0。设置以下两个环境变量,分别指向库和头文件的路径:

BOOST_LIBRARYDIR = C:\dev\libboost_1_71_0\lib64-msvc-XX.Y
BOOST_INCLUDEDIR = C:\dev\libboost_1_71_0
因为这将帮助cmake找到Boost。将Boost dll (C:\dev\libboost_1_71_0\lib64-msvc-XX.Y)文件的路径添加到path环境变量中。

2.3.编译

我们假设您已经下载了使用CGAL安装程序的示例。
在使用CGAL构建任何东西之前,您必须选择编译器/链接器,设置编译器和链接器标志,指定您想使用的第三方库以及在哪里可以找到它们。收集所有这些信息被称为配置,我们使用CMake作为配置工具(有关支持的最小版本的更多信息以及从哪里下载它,请参阅CMake节)。
这个过程的结束标志着生成一个Visual c++解决方案和一个项目文件,您可以用它来构建您的程序。

C:\dev\CGAL-5.5.1> cd examples\Triangulation_2
C:\dev\CGAL-5.5.1\examples\Triangulation_2> mkdir build
C:\dev\CGAL-5.5.1\examples\Triangulation_2> cd build
C:\dev\CGAL-5.5.1\examples\Triangulation_2\build> cmake-gui ..

命令cmake-gui启动cmake的图形界面。当你按下配置按钮时,你必须:
指定生成器,例如,Visual Studio 16 2019),以及指定一个可选平台(如果您想创建64位二进制文件,则指定x64。配置完成后,在cmake-gui中勾选Advanced和Grouped。您将看到头文件和库的来源条目。如果不需要调试,则应该将变量CMAKE_BUILD_TYPE设置为Release。

2.3.1.附加依赖

一些CGAL包还有其他依赖项。例如,在上面的配置过程中,您可能已经观察到以下消息:

NOTICE: The example draw_triangulation_2 requires Qt and will not be compiled

CGAL是一个算法和数据结构库,因此不依赖于Qt,但是,其中一个例子只是为了可视化目的。要么你已经安装了Qt,可以填写请求的CMake变量,要么你必须安装它。典型的Qt安装包括以下步骤:
在https://www.qt.io/download上下载并安装Visual Studio版本的开源开发包Qt库(这里是到离线安装程序的直接链接)。添加环境变量QTDIR指向你安装Qt的地方,例如,C:\dev\Qt\Qt5.13.1,因为这将帮助cmake找到Qt。添加Qt的bin目录,例如将C:\dev\Qt\Qt5.13.1\msvcXXXX_YY\bin添加到PATH中,其中XXXX_YY类似于vc2017_64。为了避免与来自其他文件夹的同名dll发生冲突,请将此路径添加为列表中的第一个路径。
一旦您安装了Qt,当您按下CGAL目录中的Configure时,有关Qt的CMake变量现在应该被填充了。对于其他依赖项,您必须遵循类似的过程(有关第三方库支持的版本以及下载链接的信息,请参阅编译器和第三方依赖项页面),并在CMake界面中填充缺失的信息,直到配置成功(没有更多表示缺失依赖项的红线)。
配置过程成功后,点击Generate按钮,您将找到文件Triangulation_2_examples。在C:\dev\CGAL-5.5.1\examples\Triangulation_2\build目录下的sln。双击它以打开它。您将看到每个.cpp文件有一个项目。将它们全部编译,或者只编译你感兴趣的那个。
如果您使用cmake,那么配置和编译您自己的代码实际上与CGAL示例相同。运行cmake(或cmake-gui)需要一个CMakeLists.txt文件。CGAL的所有示例和演示都会自动提供这个文件。对于您自己的程序,建议您查看您正在使用的包的示例文件夹中的CMakeLists.txt文件,以学习如何指定CGAL和其他第三方依赖项。

3.使用预编译Demo尝试CGAL算法

CGAL提供了一些演示,为一些CGAL算法提供图形用户界面。所有预编译的演示都可以在Package Overview页面上下载。在右边的列中提供了两个链接:演示本身(在Windows demo下)和一组dll(在Common demo dll下),其中包含dll文件,必须放在与演示的.exe相同的目录中。例如,参见3D凸包包。

4.总结

从官网下载对应的预编译库,只需要简单配置,便可以使用CGAL进行项目处理,比原来的CGAL易使用程度提高了许多。接下来,作者会抽一定的时间来撰写CGAL的使用教程。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
点云向量重定向是指通过CGAL(Computational Geometry Algorithms Library)中的算对点云数据中的向量进行重新定向的过程。 在计算机图形学和计算几何学中,向量是表征一个平面、曲面或物体表面在某一点上垂直于该表面的向量。在点云数据中,每个点都有一个向量。但有时候,在某些应用中需要对向量进行重定向,以使它们在整个点云中更加一致和连续。 CGAL为点云向量重定向提供了一些有用的算。其中一个重要的算线初始估计算,它可以估计点云中每个点的初始向量。该算使用了一些几何特征的计算方,例如曲率估计和线方向的一致性。 另一个重要的算线重定向算。该算的目标是通过考虑点云的拓扑关系,使得点云中的向量更加一致和连续。线重定向算使用了一种基于曲面平滑的优化方,通过最小化向量之间的角度差异来调整每个点的向量。 使用CGAL进行点云向量重定向需要先将点云数据加载到CGAL的数据结构中,例如点云网格或点云三角化。然后,可以调用中的函数来执行线初始估计和线重定向算。 通过点云向量重定向,可以使得点云中的向量更加一致,从而提高了许多点云处理任务的效果,例如表面重建、模型拟合和物体识别等。 总而言之,CGAL提供了一些有效的算来对点云数据中的向量进行重定向。通过这些算,可以使得点云中的向量更加一致和连续,提高了点云处理任务的效果和精度。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值