前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CGAL的编译以及在VS中的使用

CGAL的编译以及在VS中的使用

作者头像
用户3519280
发布2023-07-08 14:21:47
5180
发布2023-07-08 14:21:47
举报
文章被收录于专栏:c++ 学习分享

CGAL的编译以及在VS中的使用 在被CGAL长久的折磨了两三周 在学习过程中有好几次库都出现了问题 所以打算重新更换一下版本 CGAL可以说是学习这么久以来见过最离谱(ex)的环境配置,期间出了好几次问题,主要各个配置关联性太强了 稍有一步有问题 编译就很容易报错 所以想记录一下配置过程

也供大家参考

安装依赖库 安装boost Boost是CGAL的强制依赖库

下载Boost: Boost下载地址:https://www.boost.org/

这里我下载的是1_71_0

其次注意VS版本的问题 这里我使用的是vs2015

VS2015选择XX.Y=14.0 VS2017选择14.1 VS2019选择14.2

然后无脑傻瓜操作进行安装 (建议整个配置里的所有文件都放在一个文件夹里)

接下来设置环境变量

○ BOOST_LIBRARYDIR = D:\local\boost_1_71_0\lib64-msvc-14.1 ○ Boost_INCLUDEDIR = D:\local\boost_1_71_0 ○ PATH = D:\local\boost_1_71_0\lib64-msvc-14.1

然后是一个比较关键的步骤就是对Boost进行编译(这部最好做完整)

cmd+r 进入命令行 cd到boost的文件夹内

在该目录下运行bootstrap.bat 运行后会产生不b2.exe等文件

Boost非常大 建议只编译CGAL需要的依赖库

b2.exe --with-system --with-thread

安装CMake 下载网址:http://www.cmake.org/cmake/resources/software.html

无脑安装下一步(最好也是放在相同文件夹目录)

如果下一步CGAL下的版本很新的话 建议这里也下很新的

安装CGAL 下载地址:https://github.com/CGAL/cgal/releases

这里需要注意的一个点是 后面的CMake生成的build的文件夹中 如果是新版本的话 会不生成bin文件 目前原因未知

这里我下载的版本是4.13.2

还有一个点是 如果是exe文件进行安装 极大可能在自动配置环境变量后会出现应用奔溃的情况

建议还是手动配置

PATH = D:\local\CGAL-4.13.2\auxiliary\gmp\lib CGAL_DIR = D:\local\CGAL-4.13.2 目的是让CMake能找到CGAL

安装Qt 实际上Qt的配置不是必须的 有很多方法其实可以实现可视化这个功能

下载地址:https://www.qt.io/download

应该是需要注册 也可以找镜像

添加环境变量

QTDIR = D:\local\Qt\Qt5.13.1

帮助cmake找到Qt

PATH = D:\local\Qt\Qt5.13.1\5.13.1\msvc2017_64\bin

在vs中安装Qt插件 打开vs 找到工具中的插件及其更新 找到Qt的拓展 安装Qt Visual Studio Tools

安装重启后 会在工具栏看到Qt VS Tools选项

工具栏中打开Qt VS Tools–>Qt Options–>Add

添加msvc_2017_64 = D:\local\Qt\Qt5.13.1\5.13.1\msvc2017_64

编译示例 进入目录(cmd命令)

D:\local\CGAL-4.13.2> cd examples\Triangulation_2 D:\local\CGAL-4.13.2\examples\Triangulation_2> mkdir build D:\local\CGAL-4.13.2\examples\Triangulation_2> cd build D:\local\CGAL-4.13.2\examples\Triangulation_2\build> cmake-gui …

打开CMake界面后(一个非常变态的东西出现了)

在where is the source code中输入:D:\local\CGAL-4.13.2\examples\Triangulation_2

下一栏输入:D:\local\CGAL-4.13.2\examples\Triangulation_2\build

然后Configure 下选择vs版本和系统版本

done结束 再选择Generate

然后打开在Triangulation_2下生成的.sln文件(位置:D:\local\CGAL-4.13.2\examples\Triangulation_2\build)

将draw_triangulation_2设置为启动项

点击运行

在VS中使用CGAL库 CMake build

如图继续进行Configue和Generate操作

然后检查一下CGAL文件夹目录中是否有build文件夹

接下来打开生成的CGAL.sln文件

在debug以及release模式下都运行一下(这里建议注意一下自己写的系统版本)

不需要关注拒绝访问的问题 只要运行后显示成功生成了6个就没问题

然后看是否在lib文件夹中有新生成的dll文件 如果有 那么截至目前这一步还没有问题

新建工程 打开项目属性

在VC++的包含目录添加

D:\local\boost_1_71_0(安装boost_1_71_0的目录)

D:\compile\cgal\auxiliary\gmp\include(gmp的include目录,这个在安装CGAL的auxiliary目录下找)

D:\compile\cgal\include(CGAL的include目录)

D:\compile\cgal\build\include\CGAL(编译生成CGAL的include目录)

在VC++目录的的库目录中添加:

D:\compile\cgal\build\lib(编译生成CGAL的库目录)

D:\compile\cgal\auxiliary\gmp\lib(gmp的库目录)

D:\local\boost_1_71_0\libs(boost的库目录)

在链接器的输入中添加:

libgmp-10.lib libmpfr-4.lib kernel32.lib user32.lib CGAL_Core-vc140-mt-gd-4.11.lib CGAL_ImageIO-vc140-mt-gd-4.11.lib CGAL-vc140-mt-gd-4.11.lib

然后可以试运行一下CGAL-Hello World

#include #include<CGAL/Simple_cartesian.h> #include<CGAL/Exact_predicates_exact_constructions_kernel.h>

typedef CGAL::Exact_predicates_exact_constructions_kernel Kernel;;

//typedef CGAL::Simple_cartesian Kernel; //笛卡尔坐标系下的对象 typedef Kernel::Point_2 Point_2; //顶点 typedef Kernel::Segment_2 Segment_2; //直线

int main() { Point_2 p(0, 0.3), q, r(2, 0.9); { q = Point_2(1, 0.6); std::cout << (CGAL::collinear(p, q, r) ? “collinear\n” : “not collinear\n”); } { std::istringstream input(“0 0.3 1 0.6 2 0.9”); input >> p >> q >> r; std::cout << (CGAL::collinear(p, q, r) ? “collinear\n” : “not collinear\n”); } { q = CGAL::midpoint(p, r); std::cout << (CGAL::collinear(p, q, r) ? “collinear\n” : “not collinear\n”); }

return 0; } 作者:李丑图 https://www.bilibili.com/read/cv18834482/ 出处:bilibili

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-05-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档