文章目录
必要的说明
-
CGAL 介绍
-
CGAL 的全称是 Computational Geometry Algorithms Library,计算几何算法库。
-
它是使用 C++ 语言编写的开源软件,遵从 GPL & LGPL 双重开源协议。
-
它被广泛应用于几何计算相关的领域,提供众多计算几何相关的数据结构与算法诸如三角剖分,Voronoi 图,多边形,多面体,曲线整理及其应用,网格生成,几何处理,凸壳算法,搜索结构,插值,形状分析,拟合,距离等。当前版本 5.0。
-
C++ 编译器需求:要支持 C++ 14 及以上。
+ - - Linux GNU g++ 6.3 及以上 Clang 8.0.0 MS Windows GNU g++ 6.3 及以上 MS Visual C++ 14.0/15.9/16.0 MacOS X GNU g++ 6.3 及以上 Apple Clang 7.0.2/10.0.1 -
直接依赖的软件/库有(针对 CGAL 5.0 版本):
+ + - QT v5.9.0 及以上 跨平台应用程序和 UI 框架。 CMake v3.1 及以上 一个跨平台编译器 STL - C++ 标准模板库 Boost v1.57 及以上 “准”标准库 GMP v4.2 及以上 开源多精度数学运算库,GNU Multiple Precision Arithmetic。 MPFR v2.2.1 及以上 开源多精度数学运算库,GNU Multiple Precision Floating-Point Reliably。 -
可选的第三方拓展库。非必须,见附录。
-
-
安装配置步骤 :
- 基础环境
- 系统: Windows 10
- GCC : 7.3.0 (MinGW-W64, QT包内安装)
- 准备的软件有
qt-opensource-windows-x86-5.14.0.exe
boost_1_72_0.zip
CGAL-5.0-Setup.exe
cmake-3.16.2-win64-x64.msi
- 安QT(包含了GCC/STL/Qt Creater)
- 编译安装Boost
- 安装CGAL(以及Gmp)
- 安装CMake
- 编译CGAL
- 编译一个CGaL 案例
- 基础环境
安装和配置
1. 安装QT
- 安装时注意勾选选择组件
- Qt 5.14.0 -> MinGW 7.3.0 32-bit
- Qt 5.14.0 -> MinGW 7.3.0 64-bit
- Qt 5.14.0 -> Qt Charts
- Qt 5.14.0 -> Qt Quick 3D
- Qt 5.14.0 -> Qt Script
- Developer and Designer Tools -> Qt Creater
- Developer and Designer Tools -> MinGW 7.3.0 32-bit
- Developer and Designer Tools -> MinGW 7.3.0 64-bit
- 添加环境变量,我的安装位置为 C:\Qt 。
C:\Qt\Qt5.14.0\5.14.0\mingw73_64\bin
C:\Qt\Qt5.14.0\Tools\mingw730_64\bin - 测试一下QT Creater创建项目能否编运行。
- 在 CMD 中输入命令,有版本信息回应即编译器 OK 。
`C:\Users\XLong> gcc -v`
2. 编译安装Boost
- 在D盘创建新目录 *D:\CGAL* , Boost 解压到该目录下。CMD 进入目录,执行命令如下。
D:\CGAL\boost_1_72_0> bootstrap.bat gcc
- 然后执行下面命令,等半天。
D:\CGAL\boost_1_72_0> b2 --build-type=complete toolset=gcc stage
- 添加系统环境变量.
BOOST_INCLUDE : D:\CGAL\boost_1_72_0
BOOST_LIBRARY : D:\CGAL\boost_1_72_0\stage\lib - 创建QT控制台项目测试一下,首先把
.pro
文件内添加
然后写INCLUDEPATH += D:\CGAL\boost_1_72_0\
main.cpp
,代码如下#include <QCoreApplication> #include <boost/timer.hpp> #include <iostream> using namespace boost; using namespace std; int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); timer t; cout<<"max timespan:"<<t.elapsed_max()/3600<<endl; cout<<"min timespan:"<<t.elapsed_min()<<endl; cout<<"now time elapsed:"<<t.elapsed_min()<&l