一. 编译CGAL
这个版本的编译在官方文档中有很多指导,但是依然有个别细节需要注意。
大概情况如下:
编译demo时,用太新的qt(比如qt5.8)会导致interface未定义错误。最后版本罗列如下:qt5.6msvc201564、boost 1.60 、libQGLViewer2.6.3、tbb64 201702...、 Eigen3 、
0. 官网下载CGAL-4.11-Setup.exe,这是一个解压源码的exe,里面并没有lib和dll,安装后需要进行下面的编译步骤。安装在比如G:\dev\CGAL-4.11-beta1。安装时不选html,官网文档很好用。
1. 使用CMake GUI,假设大家都很熟悉cmake的使用。
2. 有一个必备的第3方Lib列表需要安装,阅读官方文档会收获更多的信息:
8.8 Eigen3, 最好也配置,很多项目要用它;这个不用编译,直接引用头文件的一个数学库。
8.9 VTK自己手工编译的,安装在D:\Program Files\VTK\。配置CMake中的VTK_DIR为 D:\Program Files\VTK\lib\cmake\vtk-8.0
1. Boost_INCLUDE_DIR是 H:/boost1.6.0;而不是H:/boost_1_65_1/boost。因为代码中都是#include
2. Qt5_DIR 参考配置为D:/Qt/Qt5.6.0/5.6/msvc2015_64/lib/cmake/Qt5
3. 在CMake GUI中选中 WITH_Eigen3、WITH_QGLViewer、WITH_ZLIB;然后configure一下,再配置:
(1)QGLVIEWER_INCLUDE_DIR为H:/dev/libQGLViewer-2.6.3
(2)EIGEN3_INCLUDE_DIR为 D:/eigen-eigen-b9cd8366d4e8;不是D:/eigen-eigen-b9cd8366d4e8/eigen,道理同boost
(3)配置zlib
4. 在CMake GUI中选中 WITH_Demos,不要选择WITH_examples,那个以后挨个来学习就好了,而且会大大增加编译时间和复杂度。
然后再Configure一下,看看有没有Error等。
如果愿意配置TBB的话,可以在此下载并解压即可;
然后,Genrate,并用VS2015打开CGAL.sln,并在vs2015的生成菜单中选择“生成解决方案”。编译大概二十分钟。
然后,找到 INSTALL,右击,生成就会安装到 C:\Program Files\CGAL中各种inlcude lib bin文件夹。
这样就可以在项目中正常使用CGAL的lib了;
二. 在自己的项目中应用CGAL库
自己创建一个win32命令行项目: CGAL HelloWorld:
注意 :
1. 有些项目需要在项目属性中配置boost和eigen,比如 VC++目录:包含目录:G:\dev\boost_1_60_0 和 D:\eigen-eigen-b9cd8366d4e8
2. 在用到Eigen3命名空间的项目,要在CPP原文件中加入宏CGAL_EIGEN3_ENABLED, 方式如下:
#define CGAL_EIGEN3_ENABLED
#include
3. 有些项目需要在项目属性中配置gmp的include和lib
三. 编译cgal demo的注意点
1. CIMG_INCLUDE_DIR 我也配置了,用解压后的文件夹配置,比如:H:\dev\CImg-2.0.5_pre092517
2. 在CMake中配置boost的lib文件,选中用带libboost***.lib的文件,比如 : H:\boost_1_60_0\lib64-msvc-14.0/libboost_filesystem-vc140-mt-1_60.lib