CGAL的安装与在VS中的配置

参考:CGAL编译与使用(Windows) · 语雀 (yuque.com)

​ CGAL+VS+Qt环境配置_balduck的博客-CSDN博客_cgal qt

从5.0版本开始,CGAL仅是一个头文件库,这意味着CGAL无需编译,只需安装好CGAL的依赖项即可。

  • CGAL主要依赖项是boost
  • CGAL还依赖GMP和MPFR(CGAL会提供编译好的)
  • 如果需要使用CGAL的可视化功能,则还需要Qt库

源码安装

CGAL5.4.1+Windows+VS2022+QT5.13.1

安装Boost

Boost是CGAL的强制依赖库。下载地址

  1. 下载boost_1_79_0-msvc-14.3-64.exe

  2. 运行下载器,安装到D:\local\boost_1_79_0

  3. 设置环境变量,这帮助cmake找到boost

    • BOOST_LIBRARYDIR = D:\local\boost_1_79_0\lib64-msvc-14.3
    • Boost_INCLUDEDIR = D:\local\boost_1_79_0
    • PATH = D:\local\boost_1_79_0\lib64-msvc-14.3

安装CGAL

官网下载

下载结束后解压,把GMP那个包放到CGAL包对应目录下就行(目录:\CGAL-5.4.1\auxiliary

然后切记将gmp的lib路径添加到环境变量path中!!!

配置环境变量

CGAL_DIR = D:\CGAL\CGAL-5.4.1,帮助cmake在配置过程中找到CGAL

安装Qt

访问官网进行下载,建议安装QT5.13.1

选择安装组件

添加环境变量

  1. QTDIR = D:\local\Qt\Qt5.13.1,帮助cmake找到Qt
  2. PATH = D:\local\Qt\Qt5.13.1\5.13.1\msvc2017_64\bin。为了避免与另一个文件夹中具有相同名称的另一个dll发生任何冲突,请将此路径添加为列表中的第一个。

在VS中安装Qt插件

  1. 打开VS2022,拓展–>管理拓展–>联机–>搜索Qt–>安装Qt Visual Studio Tools
  2. 安装完成后,重启VS,点集文件->新建->项目->Qt就可以关于Qt的信息;并且在工具栏中会有Qt VS Tools选项

VS2022配置

新建项目属性表,并进行以下配置

1 添加包含目录(通用属性->VC++ 目录->包含目录

2 添加库目录(通用属性->VC++ 目录->库目录

CGAL只是一个头文件夹包,故只要引用头文件即可

3 添加依赖项(通用属性->链接器->输入>附加依赖项

libgmp-10.lib
libmpfr-4.lib

测试

测试代码1:

#include <iostream>
#include <CGAL/Simple_cartesian.h>
typedef CGAL::Simple_cartesian<double> Kernel;
typedef Kernel::Point_2 Point_2;
typedef Kernel::Segment_2 Segment_2;
int main()
{Point_2 p(1, 1), q(10, 10);std::cout << "p = " << p << std::endl;std::cout << "q = " << q.x() << " " << q.y() << std::endl;std::cout << "sqdist(p,q) = "<< CGAL::squared_distance(p, q) << std::endl;Segment_2 s(p, q);Point_2 m(5, 9);std::cout << "m = " << m << std::endl;std::cout << "sqdist(Segment_2(p,q), m) = "<< CGAL::squared_distance(s, m) << std::endl;std::cout << "p, q, and m ";switch (CGAL::orientation(p, q, m)) {case CGAL::COLLINEAR:std::cout << "are collinear\n";break;case CGAL::LEFT_TURN:std::cout << "make a left turn\n";break;case CGAL::RIGHT_TURN:std::cout << "make a right turn\n";break;}std::cout << " midpoint(p,q) = " << CGAL::midpoint(p, q) << std::endl;return 0;
}

测试代码2:

#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
#include <CGAL/Polygon_2.h>
#include <CGAL/Polygon_with_holes_2.h>
#include <CGAL/Polygon_set_2.h>
#include <CGAL/draw_polygon_set_2.h>
typedef CGAL::Exact_predicates_exact_constructions_kernel K;
typedef CGAL::Polygon_2<K>                                Polygon_2;
typedef CGAL::Polygon_with_holes_2<K>                     Polygon_with_holes_2;
typedef CGAL::Polygon_set_2<K>                            Polygon_set_2;
typedef CGAL::Point_2<K>                                  Point_2;
Polygon_2 rectangle(int l)
{// Create a rectangle with given side length.Polygon_2 P;P.push_back(Point_2(-l, -l));P.push_back(Point_2(l, -l));P.push_back(Point_2(l, l));P.push_back(Point_2(-l, l));return P;
}
int main()
{// Create a large rectangle A, with a hole and a smaller rectangle// B inside A's hole.Polygon_with_holes_2 A(rectangle(3));Polygon_2 H(rectangle(2));H.reverse_orientation();A.add_hole(H);Polygon_2 B(rectangle(1));// Add them to a polygon set and draw it.Polygon_set_2 S;S.insert(A);S.insert(B);CGAL::draw(S);return 0;
}

可能报错:

打开属性页,在C/C++命令行中加/bigobj

]

没有配置qt的,导致上图结果

找到项目目录,创建CMakeLists.txt

# This is the CMake script for compiling a CGAL application.cmake_minimum_required(VERSION 3.1...3.22)
project(CGAL_TEST)find_package(CGAL REQUIRED OPTIONAL_COMPONENTS Qt5)# create a target per cppfile
file(GLOB cppfilesRELATIVE ${CMAKE_CURRENT_SOURCE_DIR}${CMAKE_CURRENT_SOURCE_DIR}/*.cpp)
foreach(cppfile ${cppfiles})create_single_source_cgal_program("${cppfile}")
endforeach()if(CGAL_Qt5_FOUND)target_link_libraries(main PUBLIC CGAL::CGAL_Basic_viewer)
else()message(STATUS"NOTICE: The example draw_triangulation_2 requires Qt and will not be compiled.")
endif()

使用cmake生成工程文件

  1. 打开cmake的图形界面
  2. where is the source code:例:D:\local\CGAL-5.0.2\examples\Triangulation_2
  3. where to build the binaries:例:D:\local\CGAL-5.0.2\examples\Triangulation_2\build
  4. Configure->VS 17 2022,Win64->Finish
  5. Generate

运行

  1. 打开生成的CGAL_TEST.sln文件(目录位置:D:\local\CGAL-5.0.2\examples\Triangulation_2\build
  2. 选择要编译的例子: 将main设置为启动项
  3. 运行即可

运行结果如下:

至此,CGAL的环境彻底配置完毕!

CGAL的安装与在VS中的配置相关推荐

  1. Mac下安装Tomcat以及IDEA中的配置

    安装brew 打开终端输入以下命令: /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/in ...

  2. 怎样用u盘linux安装ntp协议,电脑中怎么配置NTP服务

    NTP服务器是用来使计算机时间同步化的一种协议,可提供高精准度的时间校正,而且能通过加密确认来防止恶毒的协议攻击.下面让学习啦小编为大家介绍如何在电脑中配置NTP服务来实现局域网内设备的时间同步. 电 ...

  3. Tomcat的下载安装以及在eclipse中的配置

    Tomcat的下载 Tomcat官网下载地址:http://tomcat.apache.org/ Tomcat版本选择 操作系统位数选择 下载好后,自己选择安装在哪个盘符下,比如放在D盘,那么直接解压 ...

  4. lzo的安装及在hadoop中的配置

    一.前提 1.gcc的安装:yum install lib* glibc* gcc* 如果lzo编译出错时可能需要安装 2.ant的安装:安装略,最好1.8.2及以上版本,并设置好环境变量 在第三步需 ...

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

    CGAL的编译以及在VS中的使用 在被CGAL长久的折磨了两三周 在学习过程中有好几次库都出现了问题 所以打算重新更换一下版本 CGAL可以说是学习这么久以来见过最离谱(ex)的环境配置,期间出了好几 ...

  6. anconda安装后命令行中安装tensorflow报错

    现象  anconda安装后命令行中安装tensorflow报错 pip install --upgrade --ignore-installed tensorflow-gpu Building wh ...

  7. [异常解决] ubuntu上安装虚拟机遇到的问题(vmware坑了,virtual-box简单安装,在virtual-box中安装精简版win7)

    [异常解决] ubuntu上安装虚拟机遇到的问题(vmware坑了,virtual-box简单安装,在virtual-box中安装精简版win7) 参考文章: (1)[异常解决] ubuntu上安装虚 ...

  8. 如何用python和pip安装在txt文件中配置好版本的库包

    如何用python和pip安装在txt文件中配置好版本的库包 文章目录: 一.建立库包版本的txt配置文件 二.安装txt配置文件中的库包 有时候你自己用python实现一个项目,然后想把它在gith ...

  9. 创建一个强名称密钥文件+ 如何在 Visual C# .NET 中将程序集安装到全局程序集缓存中...

    创建强名称密钥文件 单击"开始",依次指向"程序"."Microsoft Visual Studio 2005"."Visual ...

最新文章

  1. linux mysql 操作命令_linux的mysql操作命令
  2. 前端开发大众手册(转)
  3. 故障处理 软件 需求_如何根据GJB 102A开展软件安全性分析 —— 下篇
  4. 差分能量分析介绍(三)
  5. mysql组合索引的命中情况
  6. ABAP常用字符串操作收集整理
  7. layui数据表格循环数据给特殊行变颜色遇到的bug
  8. 6.10. stack-manager
  9. 线性独立路径_设计一个线性电源电路,需要准备哪些元器件呢?
  10. linux根目录如何改代码,linux怎样修改目录字体颜色
  11. Mongodb c#增删改查
  12. Sparkstreaming实时开发详解
  13. STM32标准库官网下载方法
  14. quartus II 13.1 软件破解
  15. java sql语句中文乱码_PL/SQL执行语句中文乱码
  16. SAP Down Payment的设置和使用
  17. 支付宝怎么提交html表单提交,支付宝支付全流程
  18. 学计算机好还是警校好,上警校好还是普通大学好?上警校有的好处在哪?
  19. win7映射linux硬盘_win7旗舰版安装系统看不到硬盘解决方法(usb3.0问题)
  20. 仿世纪佳缘会员注册页

热门文章

  1. VPP调试trace显示
  2. 磁盘IOPS概念及IOPS的计算与测试
  3. 〖Python语法进阶篇⑱〗- 综合实战 - 抽奖系统之admin模块 - 抽奖系统之admin模块 - 实现对奖品的增删改操作
  4. Win11关闭Windows Defender实时保护,暂时关闭和永久关闭方法 | Win10怎么永久关闭Windows Defender实时保护
  5. 冒险岛启动游戏提示计算机丢失,各种无法登陆情况解决建议汇总
  6. 离散傅里叶变换 (DFT)、快速傅里叶变换 (FFT)
  7. 10款最佳在线地图软件介绍
  8. 堆叠式神经网络模型及GUI可视化应用
  9. [渝粤教育] 西南科技大学 法律文书写作 在线考试复习资料
  10. 从入门到放弃C语言-入门篇(2)