CGAL+VS2015+QT配置

Posted 烨烨烨烨

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CGAL+VS2015+QT配置相关的知识,希望对你有一定的参考价值。

由于实验室项目中要用到CGAL计算几何算法库,所以自己摸索了一下CGAL的配置。

CGAL是一个特别强大的计算几何算法开源库。给一个官网的连接:http://www.cgal.org/,可以再官网给的github上下载源代码。


首先,说一下CGAL配置的要求。配置CGAL之前,需要boost库,安装cmake和QT。很多的版本之间不一定兼容,亲测boost1.6+Cmake3.5+QT5+VS2015是可以的。顺便说一下,CGAL库是基于BOOST库来写的,所以一定是先配置boost,再安装CGAL。

Qt可以选择不用,因为比较大,安装起来也比较费力,但是CGAL的例子只能使用Qt来运行。

安装CMAKE 和QT就不用说了,直接下一步下一步就可以,给两个下载的官网链接:

CMAKE:  https://cmake.org/

QT: https://www.qt.io/download/


接下来我们开始配置。

1、boost。下载地址:http://www.boost.org/

下载好之后解压缩,稍微有一点大。解压完的文件夹,可以看到有一个bootstrap.bat 文件。

按住shift,点击鼠标右键-->在此处打开命令窗口。输入bootstrap.bat

执行完上述命令后会在安装目录下生成如下exe文件。

继续在DOS窗口中输入bjam.exe,程序会根据你当前安装的编译环境(vs2010,vs2012,vs2013)等自动选择与之相适应的库文件和包含文件等。

之后就安装成功了。还有很重要的一步,添加环境变量BOOST_ROOT:文件的安装路径(包含bootstrap.bat的文件夹,比如我的是:C:\\boost_1_60_0),BOOST_LIBRARYDIR:类库所在的文件夹(比如我的是:C:\\boost_1_60_0\\stage\\lib)

2、CGAL

下载CGAL的setup.exe,如图,直接运行(一直下一步就行,我装在了C盘,其他盘应该也可以)

因为我的VS2015工程要用64位,所以CGAL安装时选64位!cgal-releases-CGAL-4.8.zip 是库的源代码。


安装完之后在C盘会有这样的文件:


接下来要用到CMAKE了。

打开CMAKE,source文件夹路径给到CmakeList.txt的地方,build文件夹路径就写你想让他新生成的工程放到哪里的路径(比如我的,如下图)


然后点击configure,会让你选择编译器,我用的是VS2015,所以选择2015,64位。

这一步如果有错误,一般是路径没有设置对,比如QT的路径没有给CMAK之类的错误,看一下出错的路径,手动更改一下。如果没有错,就点击generate,会在你选择的输出路径下有一个CGAL.sln。

点开运行一下工程,Debug和Release模式下都运行一遍。会生成如下的动态库:

d的是debug生成的,不带的是release生成的。这样CGAL就配置好了。

我们验证一下,安装了QT的可以运行CGAL自带的样例,没有安装QT的,我们新建一个VS2015工程。

在VS2010里新建一个console工程:

在项目名称上点击右键-》属性-》VC++目录:
包含目录加入: CGAL安装路径\\include;CGAL安装路径\\auxiliary\\gmp\\include;Boost安装路径;CGAL编译输出路径\\include (例如我的)
库目录加入: CGAL输出目录\\lib;CGAL安装路径\\auxiliary\\gmp\\lib;Boost安装路径\\stage\\lib

(例如我的)

链接器-->输入-->附加依赖型:

加入所有lib的名称,这里给出我的,跟我版本一样的可以直接拷贝:

libboost_atomic-vc140-mt-1_60.lib
libboost_atomic-vc140-mt-gd-1_60.lib
libboost_chrono-vc140-mt-1_60.lib
libboost_chrono-vc140-mt-gd-1_60.lib
libboost_container-vc140-mt-1_60.lib
libboost_container-vc140-mt-gd-1_60.lib
libboost_context-vc140-mt-1_60.lib
libboost_context-vc140-mt-gd-1_60.lib
libboost_coroutine-vc140-mt-1_60.lib
libboost_coroutine-vc140-mt-gd-1_60.lib
libboost_date_time-vc140-mt-1_60.lib
libboost_date_time-vc140-mt-gd-1_60.lib
libboost_exception-vc140-mt-1_60.lib
libboost_exception-vc140-mt-gd-1_60.lib
libboost_filesystem-vc140-mt-1_60.lib
libboost_filesystem-vc140-mt-gd-1_60.lib
libboost_graph-vc140-mt-1_60.lib
libboost_graph-vc140-mt-gd-1_60.lib
libboost_iostreams-vc140-mt-1_60.lib
libboost_iostreams-vc140-mt-gd-1_60.lib
libboost_locale-vc140-mt-1_60.lib
libboost_locale-vc140-mt-gd-1_60.lib
libboost_log_setup-vc140-mt-1_60.lib
libboost_log_setup-vc140-mt-gd-1_60.lib
libboost_log-vc140-mt-1_60.lib
libboost_log-vc140-mt-gd-1_60.lib
libboost_math_c99f-vc140-mt-1_60.lib
libboost_math_c99f-vc140-mt-gd-1_60.lib
libboost_math_c99l-vc140-mt-1_60.lib
libboost_math_c99l-vc140-mt-gd-1_60.lib
libboost_math_c99-vc140-mt-1_60.lib
libboost_math_c99-vc140-mt-gd-1_60.lib
libboost_math_tr1f-vc140-mt-1_60.lib
libboost_math_tr1f-vc140-mt-gd-1_60.lib
libboost_math_tr1l-vc140-mt-1_60.lib
libboost_math_tr1l-vc140-mt-gd-1_60.lib
libboost_math_tr1-vc140-mt-1_60.lib
libboost_math_tr1-vc140-mt-gd-1_60.lib
libboost_prg_exec_monitor-vc140-mt-1_60.lib
libboost_prg_exec_monitor-vc140-mt-gd-1_60.lib
libboost_program_options-vc140-mt-1_60.lib
libboost_program_options-vc140-mt-gd-1_60.lib
libboost_random-vc140-mt-1_60.lib
libboost_random-vc140-mt-gd-1_60.lib
libboost_regex-vc140-mt-1_60.lib
libboost_regex-vc140-mt-gd-1_60.lib
libboost_serialization-vc140-mt-1_60.lib
libboost_serialization-vc140-mt-gd-1_60.lib
libboost_signals-vc140-mt-1_60.lib
libboost_signals-vc140-mt-gd-1_60.lib
libboost_system-vc140-mt-1_60.lib
libboost_system-vc140-mt-gd-1_60.lib
libboost_test_exec_monitor-vc140-mt-1_60.lib
libboost_test_exec_monitor-vc140-mt-gd-1_60.lib
libboost_thread-vc140-mt-1_60.lib
libboost_thread-vc140-mt-gd-1_60.lib
libboost_timer-vc140-mt-1_60.lib
libboost_timer-vc140-mt-gd-1_60.lib
libboost_type_erasure-vc140-mt-1_60.lib
libboost_type_erasure-vc140-mt-gd-1_60.lib
libboost_unit_test_framework-vc140-mt-1_60.lib
libboost_unit_test_framework-vc140-mt-gd-1_60.lib
libboost_wave-vc140-mt-1_60.lib
libboost_wave-vc140-mt-gd-1_60.lib
libboost_wserialization-vc140-mt-1_60.lib
libboost_wserialization-vc140-mt-gd-1_60.lib
libgmp-10.lib
libmpfr-4.lib
gmp.COPYING.LIB
CGAL_Core-vc140-mt-gd-4.8.lib
CGAL_ImageIO-vc140-mt-gd-4.8.lib
CGAL_Qt5-vc140-mt-gd-4.8.lib
CGAL-vc140-mt-gd-4.8.lib

如果编译运行提示找不到CGAL_......_4.8.DLL,
在运行CGAL库的bin文件夹下(E:\\VS2015_Project\\CGAL\\bin),复制到新建工程的运行目录中就可以了。

现在就可以直接引用CGAL库提供的函数进行计算机几何运算了~~

比如引用头文件时候:


没有成功配置的话,会报错提示找不到头文件,应该是路径问题。

以上是关于CGAL+VS2015+QT配置的主要内容,如果未能解决你的问题,请参考以下文章

CGAL库 Win7 + VS2015 + CMake3.6.1-GUI编译

环境配置 | win10下配置cgal+vs2017

Windows下使用CGAL-5.3.1(下载安装VS属性表配置)+ 测试代码

CGAL4.10 编译

qt4.8.7 源码在win7+vs2010环境的x64编译(qt 64位)

VS2015+Opencv3.2+QT5.8配置(一次配好)