CGAL 4.11 版 win10-vs2015-64bit 编译与开发关键点指南

一.   编译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.1 Standard Template Library (STL)这个VS编译器中是有的,不用做什么事儿。

8.2 Boost  这个到官网下载Binary版:boost_1_60_0-msvc-14.0-64.exe(270多MB),安装在在比如H:\boost_1_60_0;

8.3 GMP and MPFR,这两个在CGAL的源码setup.exe中有下载选项,下载后在代码目录里含有。比如H:\dev\CGAL-4.11\auxiliary\gmp\lib

8.4 zlib,下载zip文件,解压,cmake之,然后生成项目,然后将INSTAL生成一下(既要Debug也要Release)。注意cmake中配置的install路径。配置CGAL的cmake时要找到它。D:\Program Files\zlib\lib

8.5 OpenGL :win10系统中一般默认含有这个,基本不用管。

8.6 Qt5,我用的是qt-opensource-windows-x86-msvc2015_64-5.6.0.exe不要用高版本的qt,因为互相依赖关系和qt新版本的interface有变化)。

8.7 libQGLViewer,   这是可选的,但最好也下载之,demo中要用,非常好的工具;   最好在官网下载libQGLViewer-2.6.3.zip或在此处下载,编译一下;用QT Creator打开H:\dev\libQGLViewer-2.6.3\QGLViewer\QGLViewer.pro,然后在Creator的菜单"构建"->执行qmake,然后->构建所有项目,这会导致debug和release同时被构建,要知道他们的路径,比如:H:\dev\libQGLViewer-2.6.3\QGLViewer    。

8.8   Eigen3, 最好也配置,很多项目要用它;这个不用编译,直接引用头文件的一个数学库。

8.9  VTK自己手工编译的,安装在D:\Program Files\VTK\。配置CMake中的VTK_DIR为  D:\Program Files\VTK\lib\cmake\vtk-8.0



配置CMake GUI时需要注意:

1.   Boost_INCLUDE_DIR是  H:/boost1.6.0;而不是H:/boost_1_65_1/boost。因为代码中都是#include <Boost/***.h>。CMakegui中选中CGAL_Boost_USE_STATICLIBS,并

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 <CGAL/Surface_mesh_deformation.h>

             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





猜你喜欢

转载自blog.csdn.net/eloudy/article/details/78061701