这是系列文章的第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]即可.
因篇幅问题不能全部显示,请点此查看更多更全内容