您的当前位置:首页VS2013-编译-Qhull2015.2

VS2013-编译-Qhull2015.2

2020-01-25 来源:乌哈旅游


这是系列文章的第3/7篇

1. VS2013-Qt5.5.1-动态编译-VTK7.0.0

2. VS2013-MPI v7-静态编译-Boost1.6.1

3. VS2013-编译-Qhull2015.2

4. VS2013-编译-FLANN1.8.4

5. VS2013-编译-Eigen3.2.8

6. OpenNI2.2.0.33下载和安装

7.

VS2013-Qt5.5.1-VTK7.0.0-Boost1.6.1-Qhull2015.2-FLANN1.8.4-Eigen3.2.8-OpenNI2.2.0.33-动态编译-PCL1.8.0

此次编译Qhull2015.2,采用VS2013,在X64下编译debug和release两个版本.

Step1

去Qhull官网下载源码.

Step2

解压Qhull,本文解压到下列路径:

Step3

打开cmake-gui.exe,它位于cmake-3.5.2-win32-x86\\bin目录下.

设置源码路径(就是包含\"CMakeLists.txt\"的路径)和构建路径,本文设置如下:

Step4

勾选CMake界面上的Grouped和Advanced,Grouped是对配置分组,Advanced是显示高级配置.这两个复选框,什么时候点击都可以.

Step5

点击Configure

CMake要求选择编译器,根据实际需求选择即可,本文选择如下,然后CMake开始生成配置.

Step6

等待CMake把配置生成完毕后,就需要对CMake自动生成的配置进行修改.所有红色显示的配置,都是需要用户确认的配置或者有问题的配置,在默认配置上进行如下修改:

修改CMAKE_INSTALL_PREFIX为D:\\Qhull\\2015.2\\msvc2013_64

这个目录可以自行指定,当Qhull编译完成后,安装时,会将Qhull安装到指定的目录,强烈建议修改此目录.

Step7

点击Add Entry

Name:CMAKE_DEBUG_POSTFIX

Type:STRING

Value:d

Description:可以为空

如下图:

这样可以让

debug版本编译出二进制文件,带有后缀d.以便和release版本编译出的二进制文件相区分.强烈建议这么做.

添加之后,点击Configure.

Step8

如果还有配置是红色,点击Configure,直到没有配置为红色.

之后点击Generate.

Step9

用VS打开构建目录下的qhull.sln解决方案.

等待IDE解析,解析完成后,状态栏会显示就绪.解析过程比较耗时,耐心等待VS解析完成.

当然,可以不用等待解析完成,直接构建.

*如果装有VX等插件,建议打开qhull.sln之前禁用VX插件,否则解析可能会很慢,VS可能卡死.

Step10

确保ALL_BUILD为启动项目(如果没出问题,它应该就是启动项目).

选择ALL_BUILD项目,点击生成

Step11

Step10生成成功之后,就可以安装Qhull了,右击INSTALL项目,选择仅生成INSTALL.然后就开始安装Qhull了,安装完成,就可以在之前设置的prefix目录下看到安装之后的

Qhull.

Step12

如果Step10-11生成的是debug版本,切换成release,重复10-11即可生成并安装release版本.

*建议,要么只安装R版;要么先安装D版,再安装R版.因为后安装的版本,会覆盖同名的文件.

Qhull安装目录分析

[bin]文件夹中,D/R版本各有3个dll,6个exe.

dll一一对应,但内容不一样.

exe同名,但内容不一样.

[lib]文件夹中,D/R版本各有3个动态lib和3个静态lib.

qhullcpp.lib和qhullcppd.lib

qhullstatic.lib和qhullstaticd.lib

qhullstatic_r.lib和qhullstatic_rd.lib

都是静态库,没有dll,也没有为它们生成pdb.

lib一一对应,但内容不一样.

[include]文件夹中,D/R版本的内容完全一样.

doc文件夹中,D/R版本的内容完全一样.

man文件夹中,D/R版本的内容完全一样.

install在复制内容时,如果检测到同名且内容一样的文件,直接跳过,不复制;

检测到同名但内容不一样的文件,覆盖;

未检测到同名文件,复制.

install不会复制pdb文件,如果需要pdb,则只能手动复制.

D版本生成的pdb中,除了那3个dll对应的pdb,还有额外的11个pdb,分别是

[qconvex.pdb]

[qdelaunay.pdb]

[qhalf.pdb]

[qhull.pdb]

[qvoronoi.pdb]

[rbox.pdb]

testqset.pdb

testqset_r.pdb

user_eg.pdb

user_eg2.pdb

user_eg3.pdb

它们都是exe对应的pdb,其中[]括起来的pdb对应的exe被复制到[bin]目录下了.

所以如果真的需要使用pdb,仅仅复制那3个dll对应的pdb到安装目录的[bin]即可.

因篇幅问题不能全部显示,请点此查看更多更全内容