Windows下编译 PCL

首先绝不支持源码编译,但是由于某些原因不得不全部源码编译

参照 官网  http://www.pointclouds.org/documentation/tutorials/compiling_pcl_windows.php

PCL 源码编译构建过程

下载CMake,下载Boost ,Eigen ,FLANN VTK 的源码 

  1. Boost version >= 1.46.1 (http://www.boost.org/)(用于共享指针和线程强制性)
  2. Eigen version >= 3.0.0 (http://eigen.tuxfamily.org/) (用作SSE优化数学的矩阵后端强制性)
  3. FLANN version >= 1.6.8 (http://www.cs.ubc.ca/research/flann/)用于kdtree的快速近似最近邻搜索
  4. Visualization ToolKit (VTK) version >= 5.6.1 (http://www.vtk.org/)在使用可视化的三维点云渲染和可视化
  5. GoogleTest 可选的
  6. QHULL 可选的
  7. OpenNI 可选的
  8. QT 可选的
  9. 安装 Git客户端
  10. 依赖以及源码下载

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 编译安装

  1. 从官网  (http://www.boost.org/) 下载boost,解压 并运行 bootstrap.bat 生成 b2.exe bjam.exe两个文件
  2. 开始->运行 VS2015 VS2015 x64 本机命令提示符
  3. CD /D boost库的目录下
  4. 输入  bjam stage --toolset=msvc-10 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
  5. 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
  6. boost库在bin目录下生成,其中boost版本号换成你自己的,生成boost 静态库

解释说明

bjam: 编译工具;

install/stagestage表示只生成库文件(DLLLib)install还会生成包含头文件的include目录;

toolset:表示编译器工具,我安装的是VS2010,所以是msvc-10(如果你是VS2005,可以使用msvc-8.0 VS2008msvc-9.0)

architecture:表示架构,也就是你的CPU架构x86

address-model:表示地址长度,32/64

build-type: complete表示全部编译;

prefix:但是使用install时,表示安装目录,当使用stage时,是:--stage="xxx",表示输入库路径;

link:表示生成动态/静态链接库,动态链接库是shared,静态链接库是static,一般都会编译成静态库,因为给出程序的时候打包boost的库会非常庞大;

runtime-linkshared/static, 表示动态/静态链接C/C++运行时库(C/C++ Runtime),我们选择了动态链接;

threading:表示单/多线程编译,一般我们的程序都会用到多线程,所以选择了multi

debug release:表示生成debugrelease库;

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

 

 

猜你喜欢

转载自blog.csdn.net/douzi949389/article/details/88696512
pcl