从源码搭建PCL1.7.2+vs2015+win10
PCL是处理三维点云的第三方C++库,功能强大,在三维领域,其地位与二维领域的opencv相当。可以直接使用All-In-One installer 安装。也可以使用源码搭建PCL。
从官网下载源码。下载CMake。编译PCL,必需先编译有以下第三方库:Boost、Eigen、FLANN、VTK,可选的第三方库有:Qt、QHULL、OpenNI、GTest。
Eigen、FLANN、VTK使用cmake-gui编译。可参考博客。
Eigen只生成头文件,不区分debug和release, 其他需要区分debug和release,需添加一个entry, Name:CMAKE_DEBUG_POSTFIX,Type:STRING,Value:-gd。另外要将CMAKE_INSTALL_PREFIX这个选项改为相应的源码文件。
注意:
1、若使用64位的项目,需要编译64位的boost。从开始菜单启动Visual Studio的VS2015 x64 Native Tools Command Prompt ,进入boost源码目录,运行bootstrap.bat。然后运行b2 --build-type=complete toolset=msvc-14.0 address-model=64,其中toolset对应于visual studio版本。
2、编译VTK时可能会提醒缺少window.h。在vs2015的Property Manager中添加其路径。
3、编译PCL时,若出现library limit of 65535 objects exceeded错误时,需要在CMake PCL时点击上部的Advanced ,将PCL_ONLY_CORE_POINT_TYPES勾选。
4、Eigen使用3.2.8版本,因为3.3会在PCL的ALL_BUILD中出现Literal is not a member of Eigen NumTraits。
5、编译PCL时可能会提醒error C2338: <hash_map> is deprecated and will be REMOVED. Please use <unordered_map>.可以在hash_map头文件中添加#define _SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS 1
6、PCL1.8可能会遇到static_cast cannot convert from double to pcl::visualization.....的问题只需在出错处将double转化为int。