您的位置:首页 > 其它

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

2017-09-22 12:43 423 查看
一. 编译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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: