• 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

    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
    
    • 1

    安装cgal。如下所示:

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

    这将花费几分钟,因为它将下载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 ..
    
    • 1
    • 2
    • 3
    • 4

    命令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
    
    • 1

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

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

    在这两种情况下,当您再次启动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 ..
    
    • 1
    • 2
    • 3
    • 4

    命令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的使用教程。

  • 相关阅读:
    SpringAOP入门
    水电远程抄表:现代智能生活的创新实践
    Oracle/PLSQL: Translate Function
    Linux 内存管理 pt.2
    赛事个人团体报名分组成绩查询证书h5小程序开源版开发
    Centos7安装MongoDB7.xxNoSQL数据库(骨灰级+保姆级)
    unity-协程详解
    Anaconda中配置PyTorch环境——win10系统(小白包会)
    Linux 中安装MySQL
    iOS全埋点解决方案-界面预览事件
  • 原文地址:https://blog.csdn.net/m0_67316550/article/details/128068238