CGAL配置后使用时遇到的一些问题及解决方法

配置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.liblibmpfr-4.lib

你可能感兴趣的:(图形学)