具体版本和操纵参考官网win msvc版本编译,
Qt5.6编译PCL环境
备注:
In order to compile every component of the PCL library we need to download and compile a series of 3rd party library dependencies:
Boost version >= 1.46.1 (http://www.boost.org/)
used for shared pointers, and threading. mandatory
Eigen version >= 3.0.0 (http://eigen.tuxfamily.org/)
used as the matrix backend for SSE optimized math. mandatory
FLANN version >= 1.6.8 (http://www.cs.ubc.ca/research/flann/)
used in kdtree for fast approximate nearest neighbors search. mandatory
Visualization ToolKit (VTK) version >= 5.6.1 (http://www.vtk.org/)
used in visualization for 3D point cloud rendering and visualization. mandatory
googletest version >= 1.6.0 (http://code.google.com/p/googletest/)
used to build test units. optional
QHULL version >= 2011.1 (http://www.qhull.org/)
used for convex/concave hull decompositions in surface. optional
OpenNI version >= 1.1.0.25 (http://www.openni.org/)
used to grab point clouds from OpenNI compliant devices. optional
Qt version >= 4.6 (http://qt.digia.com/)
used for developing applications with a graphical user interface (GUI) optional
当前使用版本:
Boost 使用的是1_67
编译boost
解压boost 源码, 当前位置打开命令行: ./bootstrap.bat gcc
在源码路径下创建安装文件夹build,执行命令(一条命令): ./b2 -j4 toolset=gcc link=shared threading=multi --layout=versioned --without-python --prefix="D:\PCL_56\boost_1_67_0\build" --build-type=complete install
进行安装
编译flann
解压源码,源码目录创建build目录,使用cmake-gui进行配置(注意:make 类型要选mingw makeFile)
取消不必要模块,CMAKE_INSTALL_PREFIX选择build路径
遇到编译报错“/W1 /bigobj”
这两个都是vc编译选项,使用gcc选项: -Wall -Wa,-mbig-obj 代替;注意,此处gcc版本低,所以只替换/W1,删除 /bigobj。在build目录及子目录下找到所有的flags.make文件(总共有5个都改),打开编辑
依次点击Configure ,generate
build 目录运行:mingw32-make.exe进行编译,运行 mingw32-make.exe install进行安装
Eigen 库
无需编译,解压即可。
QHULL编译
解压源码,源码目录创建build目录,使用cmake-gui进行配置
依次点击Configure ,generate
build 目录运行:mingw32-make.exe进行编译,运行 mingw32-make.exe install进行安装
安装VTK
解压源码,源码目录创建build目录,使用cmake-gui进行配置
配置好源码路径和安装路径,点击Configure ,耐心等待......
(1)CMAKE_BUILD_TYPE (这里选择Release,后续根据需要可以编译debug)
(2)设置CMAKE_INSTALL_FREFIX为build
(3)勾选VTK_Group_Qt
(4)VTK_RENGDING_BACKEND (默认选择OpenGL2;如果硬件不支持则需要选择OpenGL)
(5)再次点击Configure
(6)设置Qt5_DIR
再次点击Configure,cmake会自动寻找Qt相关路径
generate
build 目录运行:mingw32-make.exe -j4(根据计算机内核数设置)进行编译,运行 mingw32-make.exe install进行安装
编译问题:debug 版本 vtkDataArray.cxx.obj: File too big
编译PCL
解压源码,源码目录创建build目录,使用cmake-gui进行配置
配置好源码路径和安装路径,点击Configure ,耐心等待......
(1)设置build路径
(2)CMAKE_BUILD_TYPE 设置为Release(debug版本可自行编译)
(3)设置engin 路径
点击Configure ,耐心等待......
(4)设置FLANN路径
点击Configure ,耐心等待......
(5)Qhull_DIR 设置
点击Configure ,耐心等待......
(6)设置VTK路径
设置为VTK 源码路径
VTK_DIR: D:/PCL_56/VTK/build
点击Configure ,耐心等待......
(7)设置boost 库路径
注意:如图所示,部分路径找不到不影响编译
(8)勾选可视化模块
(9)Configure generte
说明:配置过程中可能遇到各种问题,总的解决思路就是不断针对问题修改(可以查看下方log框里的error ,)修改后不断Configure ,直到不弹出报错窗口。
(10)编译,发布
build 目录运行:mingw32-make.exe -j4(根据计算机内核数设置)进行编译,运行 mingw32-make.exe install进行安装
编译错误:
(1)提示size_t 重复定义;修改:
(2)
具体原因未知,查看Cmake-gui 打印log,Vtk头文件已经找到,“VTK found (include: /include/vtk-8.2”
临时解决办法:将vtk 头文件绝对路径加入PCL CmakeList.txt文件:
include_directories(D:/PCL_56/VTK/build/include/vtk-8.2)
(3)Int 与 const char*不匹配
Vtk与pcl 版本匹配差异,暂时修改pcl 源码,改函数未使用;
(4)out of memory allocating 65536 bytes
解决:
同时,需要取消surface 模块构建,
编译完成,执行make install