CMake+VS2013编译与安装32/64位PCL1.8RC1源码(附网盘链接)
- 大家好,这是我的第一篇CSDN微博,我的博客旨在在记录本人的学习历程,也希望对大家有所助益!
PCL(点云库)的安装方式有两种,即从源码直接编译和下载与系统环境对应的All-in-One Installer安装程序,当系统当前的安装环境不满足安装程序的要求或希望采用特定版本的组件包进行开发时,可以选择自己编译PCL这种更灵活的方式。需要说明的是本文虽然列出了32/64位的编译安装方法,但我仅编译了64位代码所需的库和头文件,据说32位的更容易编译(64位系统下也能编译出32位库)所以没有尝试。我的编译环境如下:
- Windows 10 64位
- Visual Studio 2013 旗舰版 64位编译器
- CUDA7.5 64位
- CMake 版本 3.5.0 RC2
- MS-MPI 版本 v7
- Eigen 版本 3.2.8
- Boost 版本 1.60
- VTK 版本 7.0
- QT 版本 5.5.1
- PCL 版本 1.8RC1
- FFTW 版本3.3.4
- Qhull 版本 2015.2
- OpenNI 版本 2.2.0.33 beta
- Microsoft Kinect SDK 版本 2.0
列出的基本组件Boost、Eigen、VTK、Qhull为PCL要求必须具备的;QT和VTK可以编译成QVTK;FFTW库能够与Eigen库结合,用于快速傅里叶变换;OpenNI包含深度相机所需的驱动和库函数(如果想开发Kinect 1代相机应用,还需要中间件NITE),2.2版本表现更加优秀;CUDA是以前和OpenCV一起安装的,在PCL的编译中只起测试作用;MS-MPI是Microsoft MPI工具,用于编译Boost;除了Eigen和VS,其他组件版本均为截止到目前的最新版本。PCL编译过程主要参考了一个日本同行的博客,他编译了32位和64位的PCL1.8+VS2015的All-in-One Installer并附有详细过程,我已经将两个Installer搬运过来方便上不了Github和OneDrive的朋友们下载,网盘还有本文编译出的库文件和头文件:密码:abx7
安装Boost
- . 安装Microsoft MPI
用MS-MPI 2012R2版本可以编译Boost 1.59,但是无法编译Boost 1.60,所以要采用MS-MPI v7,MPI v7版本与旧版不同,分为SDK(库文件和头文件,本文安装在C:\Program Files\Microsoft SDK目录)和MPI(可执行程序,本文安装在C:\Program Files (x86)\Microsoft MPI目录)两个必须安装的组件,本文中所有的组件安装根目录都可以改变,但在环境变量、命令行、代码部分涉及安装根目录时一定要正确地用自己的安装目录替换本文的示例目录。如果卸载旧版MPI再安装新版MPI可能会出现“MS-MPI Installation failed with error code 2”的问题,这是由于MPI软件缺陷导致卸载时无法清除其注册表信息,解决方法是手动删除注册表里的
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall{8499ACD3-C1E3-45AB-BF96-DA491727EBE1}文件夹
- 编译源码
本文中Boost 1.60的解压根目录为D:\PCL\dep\Boost,首先在系统环境变量中添加系统变量:
名称:BOOST_ROOT
路径:D:\PCL\dep\Boost
修改D:\PCL\dep\Boost\tools\build\src\tools\mpi.jam文件并保存:
第 249-251 行:
local microsoft_mpi_sdk_path = "C:\\Program Files (x86)\\Microsoft MPI" ;
local microsoft_mpi_path = "C:\\Program Files\\Microsoft MPI" ;