配置CGAL无需赘述,按照官网的教程一步步来即可。
配置完成后,我们可能会需要创建一个自己的项目,来使用CGAL。
假设我们使用Visual Studio创建一个最简单的项目,里面仅包含一个main.cpp文件:
#include "CGAL/Polyhedron_3.h"
int main()
{
return 0;
}
明显地,我们需要将F:\OpenSource\CGAL-4.9\include\
添加到头文件附加包含目录,将F:\OpenSource\CGAL-4.9\build\lib
添加到附加库目录。
编译后,会出现以下错误:
fatal error C1083: 无法打开包括文件: “boost/config.hpp”: No such file or directory
这说明我们还需要添加boost库的头文件目录,我这里是F:\OpenSource\boost_1_63_0
。
再次编译,又出现错误:
fatal error C1083: 无法打开包括文件: “CGAL/compiler_config.h”: No such file or directory
“compile_config.h”实际上是CMake生成的一个头文件,在F:\OpenSource\CGAL-4.9\build\include\CGAL
目录下,所以我们同样将F:\OpenSource\CGAL-4.9\build\include
也加入到头文件附加包含目录中。
再次编译,出现错误:
无法打开文件“libboost_thread-vc120-mt-gd-1_63.lib”
于是我们又需要将F:\OpenSource\boost_1_63_0\lib64-msvc-12.0
添加到附加库目录中。
再次进行编译,这次出现的错误较多:
boost_system-vc120-mt-gd-1_63.lib(boost_system-vc120-mt-gd-1_63.dll) : error LNK2005: “class boost::system::error_category const & __cdecl boost::system::system_category(void)” (?system_category@system@boost@@YAAEBVerror_category@12@XZ) 已经在 libboost_system-vc120-mt-gd-1_63.lib(error_code.obj) 中定义
boost_system-vc120-mt-gd-1_63.lib(boost_system-vc120-mt-gd-1_63.dll) : error LNK2005: “class boost::system::error_category const & __cdecl boost::system::generic_category(void)” (?generic_category@system@boost@@YAAEBVerror_category@12@XZ) 已经在 libboost_system-vc120-mt-gd-1_63.lib(error_code.obj) 中定义
fatal error LNK1169: 找到一个或多个多重定义的符号
因为是Debug模式,所以显示的是带有gd标志的库。此时我们只需要将boost_system-vc120-mt-gd-1_63.lib
添加到链接器->附加依赖项中即可。
再次编译,就可以成功通过了。
另外的,某些功能可能用到gmp库。所以用到这些功能时,我们还需要在头文件附加包含目录中添加F:\OpenSource\CGAL-4.9\auxiliary\gmp\include
,在附加库目录中添加F:\OpenSource\CGAL-4.9\auxiliary\gmp\lib
,并在链接器->附加依赖项中包含libgmp-10.lib
及libmpfr-4.lib
。