当前位置:首页 > 开发教程 > 软件工程 >

CGAL+VS2015+QT配置

时间:2016-06-08 10:46 来源: 作者: 收藏

考察了拷贝构造函数和赋值构造函数,以及通过子类构造时调用基类构造函数时候,基类构造函数调用同名的virtual函数(基类和之类中都有,同名覆盖),调用时仍然是调用的基类中的该函数。/********************************************************************

由于实验室项目中要用到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 文件。

CGAL+VS2015+QT配置CGAL+VS2015+QT配置

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

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

CGAL+VS2015+QT配置CGAL+VS2015+QT配置

继续在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 是库的源代码。

CGAL+VS2015+QT配置

CGAL+VS2015+QT配置

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

CGAL+VS2015+QT配置CGAL+VS2015+QT配置

接下来要用到CMAKE了。

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

CGAL+VS2015+QT配置

CGAL+VS2015+QT配置

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

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

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

CGAL+VS2015+QT配置CGAL+VS2015+QT配置

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

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

在VS2010里新建一个console工程:

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

(例如我的)

CGAL+VS2015+QT配置CGAL+VS2015+QT配置

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

加入所有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+VS2015+QT配置CGAL+VS2015+QT配置

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

1
0
   

软件工程阅读排行

最新文章