首先绝不支持源码编译,但是由于某些原因不得不全部源码编译
参照 官网 http://www.pointclouds.org/documentation/tutorials/compiling_pcl_windows.php
下载CMake,下载Boost ,Eigen ,FLANN VTK 的源码
cd /d 自己的存储文件目录下面
下载 Pcl git clone https://github.com/PointCloudLibrary/pcl.git
下载 Boost https://dl.bintray.com/boostorg/release/1.69.0/source/boost_1_69_0.zip
下载 Eigen http://bitbucket.org/eigen/eigen/get/3.3.7.zip
下载 Flann http://www.cs.ubc.ca/research/flann/uploads/FLANN/flann-1.8.4-src.zip
下载 VTK https://www.vtk.org/files/release/8.2/VTK-8.2.0.zip
1.boost 编译安装
bjam stage --toolset=msvc-14.0 architecture=x86 address-model=64 --without-graph --without-graph_parallel --stagedir="D:\zqq\library\pcl_01\boost_1_69_0\bin\vc14-x64" link=static runtime-link=shared runtime-link=static threading=multi debug release
boost库在bin目录下生成,其中boost版本号换成你自己的,生成boost 静态库
解释说明
bjam: 编译工具;
install/stage:stage表示只生成库文件(DLL和Lib),install还会生成包含头文件的include目录;
toolset:表示编译器工具,我安装的是VS2010,所以是msvc-10(如果你是VS2005,可以使用msvc-8.0 VS2008是msvc-9.0);
architecture:表示架构,也就是你的CPU架构x86;
address-model:表示地址长度,32/64
build-type: complete表示全部编译;
prefix:但是使用install时,表示安装目录,当使用stage时,是:--stage="xxx",表示输入库路径;
link:表示生成动态/静态链接库,动态链接库是shared,静态链接库是static,一般都会编译成静态库,因为给出程序的时候打包boost的库会非常庞大;
runtime-link:shared/static, 表示动态/静态链接C/C++运行时库(C/C++ Runtime),我们选择了动态链接;
threading:表示单/多线程编译,一般我们的程序都会用到多线程,所以选择了multi;
debug release:表示生成debug和release库;
without/with:表示不需要编译/需要编译哪些库,一些自己不用的库可以无需编译;
2. Eigen编译安装
Eigen 是只包含头文件的库,只需要把Eigen 目录加到环境变量即可
3. Flann编译安装
CMake处理 Flann库,选择路径 和构建路径,点击Configure
出现 Configuring done 并且没有发现Error, Warning可以忽略,点击Generate,出现Generating done,点击OpenProject
编译flann x64的时候提示 .serialize 左边必须有类/结构/联合
flann在x86环境下能很好的编译通过,但是在x64环境下面就会出现这个问题,这是源代码本身的问题,解决办法在serialzation.h的94行代码后面增加如下代码:
#ifdef _MSC_VER
BASIC_TYPE_SERIALIZER(unsigned __int64);
#endif
4.VTK编译安装
选择源文件目录,选择构建路径执行Configure,搜索qt,设置Qt5_DIR目录为QT安装路径下的QT5.10.1\5.10.1\msvc2015_64\lib\cmake\Qt5 文件夹,再次点击Configure,忽略警告,执行Generate,完成后项目
编译VTK:选择Release x64 | Debug x64
5.PCL编译安装
1.CMake-GUI编译PCL提示找不到Boost库,自己手动添加BOOST_ROOT,和BOOST_INCLUDEDIR 路径
2.提示找不到 FLANN ,需要手动添加路径
3.找不到VTK
设置CMake VTK_DIR路径指向VTK的Build文件夹
4.设置QT环境
Qt5_DIR指向QT安装路径下的VS2015_64下的cmake下的QT5文件夹,点击Configure,忽略警告,执行Generate,完成后打开项目
然后分别构建Debug x64 |Release x64