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

时间:2021-10-07 04:26:16

最近做的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官网

VS说明

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

Boost说明

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

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

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

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

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

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

BOOST_ROOT:BOOST安装目录

——————(例:G:\Dev\boost_1_60_0)

BOOST_LIBRARYDIR:%BOOST_ROOT%\stage\lib

——————(例G:\Dev\boost_1_60_0\stage\lib)

CGALCMake说明

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

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

CGAL_DIR:CGAL安装目录

——————(例:G:\Dev\CGAL\CGAL_4.8.2)

path:CGAL的gmp库目录

——————(例:%CGAL_DIR%\auxiliary\gmp\lib)

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

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

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

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

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

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

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

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

path:CGAL编译目录\bin

——————(例:G:\Dev\CGAL\CGAL_Project\bin)

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

Demo试验

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

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

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

一共是四个:

$(BOOST_ROOT)

$(CGAL_DIR)\include

$(CGAL_DIR)\auxiliary\gmp\include

G:\Dev\CGAL\CGAL_Project\include

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

再添加附加Library

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

一共三个

$(CGAL_DIR)\auxiliary\gmp\lib

$(BOOST_LIBRARYDIR)

G:\Dev\CGAL\CGAL_Project\lib

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

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

国内参考资料

1 某博文

2 某文库

3 某博客

QT特供 CGAL配置流程(基于QT5+VS2015)的更多相关文章

  1. 我的QT5学习之路(一)——浅谈QT的安装和配置

    一.前言 说到Qt,不能不说到C++,这门伟大的语言.因为其面向对象的编程思想和陡峭的学习曲线,一开始学习起来很是吃力.Qt从QT4开始基本封装了很多C++的工具库和界面库,而且支持跨平台,这是它最大 ...

  2. 基于Qt5.5.0的sql,C++备忘录软件的编写

    我的第一个软件. 基于Qt5.5.0的 sql ,C++备忘录软件version1.0的编写 我用的Qt版本是5.5.0免配置编译器的版本,这里附上我使用的软件下载地址:http://download ...

  3. QTcreator打包发布可运行程序(基于QT5.7)

    完成C++界面程序后,我们还需要对程序进行Release,然后进行打包,才可以直接运行.我在这期间绕了一个大弯,现在记录下来我的做法供参考. 正确步骤 第一步:将构建程序改为Release,然后构建项 ...

  4. OpenCV-3.4.2基于Qt-5.10.1的编译

    OpenCV-3.4.2基于Qt-5.10.1的编译 由于本人在使用CMake和MinGW编译OpenCV是遇到了很多问题,在这里记录下来.至于所需软件的安装和相应环境变量的设置,网上有很多详细的教程 ...

  5. 基于Qt5.5.0的sql数据库、SDK_tts文本语音朗读的CET四六级单词背诵系统软件的编写V1.0

    作者:小波 QQ:463431476 请关注我的博客园:http://www.cnblogs.com/xiaobo-Linux/ 我的第二款软件:CET四六级单词背诵软件.基于QT5.5.0.sql数 ...

  6. Linux下双网卡Firewalld的配置流程

    实验室拟态存储的项目需要通过LVS-NAT模式通过LVS服务器来区隔内外网的服务,所以安全防护的重心则落在了LVS服务器之上.笔者最终选择通过firewalld放行端口的方式来实现需求,由于firew ...

  7. 配置CLion作为Qt5开发环境

    使用Qt进行程序开发时QtCreator总是不二之选.作为老牌IDE在提供了强大的功能同时也对Qt的支持做了许多优化.如果没有特别的原因你应该使用它. 然而一个顺手的工具将会极大得提升生产效率,而如果 ...

  8. 转载-Linux下svn搭建配置流程

    Linux下svn搭建配置流程     一.    源文件编译安装.源文件共两个,为: 1.   下载subversion源文件 subversion-1.6.1.tar.gz http://d136 ...

  9. win10下vagrant+centos7 rails虚拟开发机配置流程

    此文写于2017.8.21 在写本文前,笔者已经尝试了多种其他的替代方法,例如wmware虚拟机安装kylin.然而发现总是还有各种问题.经大佬指点安装了virtualbox + vagrant.于是 ...

随机推荐

  1. JAVA基础学习——1.1 环境搭建 之jdk安装,环境变量配置 (系统Win10,64bit)

    大学里虽然老师教过JAVA,但我没学.后来工作了,断断续续的也碰到了JAVA的项目,都是拉过来就干的节奏.也没有好好系统的学习一下. 从今天开始系统学习整理一下JAVA,以后再碰到JAVA项目的时候, ...

  2. 新手编辑c语言的注意事项

    一般情况下新手都会犯的错误 1,注意在c语言中的大小写是有区别的,但在windows系统中默认没有差别,但是有时候也会出现bug. 2.在编程的时候注意定义你所使用的变量 3,每行代码的结尾注意要有分 ...

  3. Android学习系列(22)--App主界面比较

    本文算是一篇漫谈,谈一谈当前几个流行应用的主界面布局,找个经典的布局我们自己也来实现一个.不是为了追求到底有多难,而是为了明白我们确实需要这么做. 走个题,android的UI差异化市场依然很大,依然 ...

  4. github学习(一)

    初识github篇. 一.什么是github:       GitHub 是一个面向开源及私有软件项目的托管平台,因为只支持 Git 作为唯一的版本库格式进行托管,故名 GitHub.       g ...

  5. PyQt:个性化登录界面模仿QQ登录

    写在前面 写了一个登录界面的demo,类似QQ的,写的自己喜欢的样式,贴一下代码,先上效果,如下 陈述 PyQt5+Python3.5.2 login.py是里登录的主界面loginWnd类,Head ...

  6. Nhibernate学习的第一天

    书本:https://www.tutorialspoint.com/nhibernate/index.htm 第一天学习内容 概念 Nhibernate是一个ORM框架. ORM框架:将声明的类映射到 ...

  7. devexpress控件之ASPxCallback

    ASPxCallback主要是通过注册客户端事件与服务器端事件来相互通信完成任务.ASPxCallback控件为我们封装了大量的Ajax操作,使用起来非常的方便,如果页面中遇到需要局部刷的操作而又不想 ...

  8. SAP接口的调用

    最近做一个专案用到的SAO接口的调用,用到的上传参数获取回传的IRfcTable,以及以IRfcTable作为参数上传SAP,通过查阅很多资料,发现资料说明的也多是鱼龙混杂,许多没有实现就直接贴在上面 ...

  9. 〖Android〗sshd for android, 及映射根文件系统至本地盘符

    严重问题: 若移植失败将可能直接导致手机***无法开机***,导入相关文件需慎重! 达成效果: 1. ssh 远程登录 Android 终端: 2. sftp 挂载/映射 Android 根文件系统至 ...

  10. quartz---properties

    quartz---properties quartz.properties: 如果没有properties默认读取quartz-2.3.0.jar下的org.quartz下的quartz.proper ...