• QT特供 CGAL配置流程(基于QT5+VS2015)


    最近做的QT项目涉及计算几何库,需要用到CGAL,其配置着实麻烦,而且相互关联的软件也存在版本兼容一类的问题,在这里就对其配置流程做一些整理说明,以便后来者能够少些烦恼。(注:以下使用Win10作说明)

    本流程前题条件

    VS+QT的配置已经没有问题

    CGAL配置相关软件说明

    在CGAL官网下载页面上有相关软件的安装配置说明(Download CGAL for Windows),所需软件和库分别是:Boost库(CGAL库是基于Boost C++库的),CMakeCGAL库。其中CMake版本要求可以稍宽松些,但是CGAL和Boost库的关联则非常紧密。

    Boost库官网    CMake官网    CGAL官网

    博主使用的版本如下:CMake-3.7.1,CGAL-4.8.2,Boost-1.60.0(都为64位版本)(各库的位宽尽量与系统相匹配,例如博主系统为64位Win10)

    QT说明

    博主的QT版本为5.7.0,如果不存在代差,QT的版本应该也不会和上面的版本存在兼容问题,博主未测试。 QT官网

    注:添加环境变量如下(本处为第二次安装时补加,版本有差异,所以下方路径跟第一次写这篇文章的QT和VS版本有一点不同):

    QTDIR:QT安装目录

    ——————(例:D:ProfessionIDEQt5.9.2msvc2017_64)

    添加入PATH:

    ——————(例:%QTDIR%in)

    VS说明

    博主VS版本为VS2015-64社区版(内部版本号:14.0),同QT一样,只要不存在代差,VS版本与以上版本之间应该没有兼容问题,博主未测试过。

    Boost说明

    建议下载对应版本的压缩包(会精简些),解压后,在Boost目录下会有一个bootstrap.bat文件,可以打开dos界面切换到该目录下输入该文件名执行该文件(或在该目录空白处右键->在此处打开命令窗口),也可以双击运行它(完成时看不到打印消息)

    注:这一步出错可以试试在VS开发命令提示工具中运行,英文名称Developer Command Prompt VS for 2015(开始菜单应该可以找到对应64位或32位的提示工具).

    执行完毕后,目录下会出现bjam.exe文件,此时在dos界面执行该文件,时间较长,请等待5-30min,该程序会先扫描当前系统编译环境,而后选择相匹配的库文件进行安装。

    一般情况此时应该不会有update failed提示,如果存在该提示,有可能是系统编译环境问题或者Boost版本问题。(此处如果很难成功可以参考文末的-国内参考资料-某文库,该篇文章提到可以利用Boostpro进行更简便的安装)。

    此处成功后,请一定记得为其安装目录类库目录添加系统环境变量:

    BOOST_ROOT:BOOST安装目录

    ——————(例:G:Devoost_1_60_0)

    BOOST_LIBRARYDIR:%BOOST_ROOT%stagelib

    ——————(例G:Devoost_1_60_0stagelib)

    CGALCMake说明

    CGAL安装是从Github上下载,CMake有其官网链接。

    CGAL的环境变量也需要添加如下:

    CGAL_DIR:CGAL安装目录

    ——————(例:G:DevCGALCGAL_4.8.2)

    path:CGAL的gmp库目录

    ——————(例:%CGAL_DIR%auxiliarygmplib)

    注:CGAL的gmp库目录应该可以不加,如果出现问题再加也行。

    安装完毕后,打开CMake中bin目录下的CMake-GUI.exe。

    输入CGAL源目录(包括CMakeLists.txt文件,此文件中包括生成代码)和你想要新生成文件的路径(可以自己新建一个目录)。

    此时点击configure进行配置,如果这里出现问题,一般都是环境变量配置错误。

    成功配置后,开始Generate,此时会在生成目录下产生一个CGAL.sln的方案,此时用VS打开,对ALL_BUILD项目进行编译(最好DEBUG和RELEASE模式都需要进行编译,方便以后使用),会在生成目录的bin下产生如下动态链接库:

    带gd表示是debug模式下产生,不带则为release模式下产生,此时可以将该目录加入path路径

    path:CGAL编译目录in

    ——————(例:G:DevCGALCGAL_Projectin)

    该路径可以不加,但是在运行项目时就需要将该目录下的相应的dll文件(debug和release模式分别对应)copy到项目目录下。

    Demo试验

    CGAL中的Demo测试可以参考博文:某博文 ,这篇博文是直接利用CMake编译生成的库进行测试的。以下对不利用CMake编译VS+CGAL的项目搭建进行说明。

    首先对已建立的VS项目属性进行更改,添加附加Include

    一共是四个:

    $(BOOST_ROOT)

    $(CGAL_DIR)include

    $(CGAL_DIR)auxiliarygmpinclude

    G:DevCGALCGAL_Projectinclude

    最后一个include目录是经过CMake配置+编译过后产生的一个头文件。

    再添加附加Library

    一共三个

    $(CGAL_DIR)auxiliarygmplib

    $(BOOST_LIBRARYDIR)

    G:DevCGALCGAL_Projectlib

    最后是附加依赖项,这一项我没有加也可以运行,因此没有测试过。

    这样下来应该就能成功编译运行Demo了。

    国内参考资料

    1 http://blog.csdn.net/u012876599/article/details/51602101

    2 http://www.docin.com/p-708285359.html?qq-pf-to=pcqq.discussion

    3 http://blog.csdn.net/choris/article/details/50171123

  • 相关阅读:
    Vue实现的mini计算器
    动态 WebApi 引擎使用教程(3行代码完成动态 WebApi 构建)
    [备忘] 解决 rzc discover exited with code -2147450730 问题
    一个由于侵入框架引起的故障
    计算机基础--01
    csharp: read xml
    Hystrix 原理深入分析-spring cloud 入门教程
    Hystrix 简介-spring cloud 入门教程
    linux下使用 du查看某个文件或目录占用磁盘空间的大小
    最火的Spring Cloud Gateway 为经过身份验证的用户启用速率限制实践-spring cloud 入门教程
  • 原文地址:https://www.cnblogs.com/Inkblots/p/6242614.html
Copyright © 2020-2023  润新知