VS2013下PCL1.8.1的编译

/******************************************

PCL1.8.1编译

*****************************************/

1.本次编译是在vs2013下32位的编译,其所依赖的库为:

VTK与QT:https://blog.csdn.net/jaggerjack330/article/details/82595523

Boost:https://blog.csdn.net/jaggerjack330/article/details/82591188

Qhull:https://blog.csdn.net/jaggerjack330/article/details/82627713

FLANN:https://blog.csdn.net/jaggerjack330/article/details/82628815

OpenNI可以直接安装:https://pan.baidu.com/s/1q1EWJZwQ_1qKmVTpigv3XQ 密码:iljv

 

2.下载PCL1.8.1的源码:https://github.com/PointCloudLibrary/pcl/tree/pcl-1.8.1,解压,我的解压目录为D:\PCL,新建Build文件夹作为编译时的目录,pcl-res作为临时安装目录,pcl-debug为debug版本,pcl-release为release版本。

 

2.打开CMake(请自行下载),将pcl-pcl-1.8.1文件夹中的CMakeLists.txt拖入CMake中,在Where is the source code中保持默认D:/PCL/pcl-pcl-1.8.1,Where to build the binaries中修改为D:/PCL/Build。可以勾选Grouped和Advanced的选项。

 

3.另外为了可以让CMake找到更多SDK的路径,我们为其添加一个CMAKE_PREFIX_PATH。

点击Add Entry,设置Name为CMAKE_PREFIX_PATH,Type为STRING,Value为之前编译安装的依赖库的路径。我的值为:

D:\VTK\VTK-debug;D:\Boost;D:\Qhull\Qhull-debug;D:\Flann\flann-debug;D:\Eigen\Eigen;D:\Qt\Qt5.4.2\5.4\msvc2013_opengl;

Description可以为空。

注意:CMAKE_PREFIX_PATH的值根据实际情况设置,在点击Configure按钮前添加。建议使用这种方式引导CMake的搜索过程,并且把环境变量中的SDK去掉,这样CMake会搜索你指定的目录,以便得到正确版本的SDK路径和正确的CMake设置。

(参考自https://wenku.baidu.com/view/7b433a800b1c59eef9c7b457

 

4.点击Configure,选择Visual Studio 12 2013,会出现一些错误,下图是一些警告错误,由于没有安装这些依赖库,不过不影响编译。

但是可能也会出现一些库文件路径找不到的错误,需要我们手动进行修改,比如下图的找不到boost

 

5.我把需要注意修改的地方进行简单的介绍,首先确保Ungrouped Entries中的EIGEN_INCLUDE_DIR的路径是否正确,然后是QT的相关路径是否正确,然后是VTK_DIR的相关路径。

然后是boost的相关路径,由于我报了这个错误,我需要手动进行添加,找到对应的库文件即可,这里的MPI库需要先安装MPI,不过不是必须要用到的,可以不进行设置。

有可能在编译boost的时候由于某些原因部分库文件没有编译成功,那么在确保vs2013为update5的情况下定位至boost原始文件夹,在控制台输入

bjam.exe toolset=msvc-12.0 --build-type=complete address-model=32 --with-serialization --with-system --with-date_time --with-regex --with-filesystem --with-timer  --with-chrono  --with-program_options --prefix="X:\X\Boost" stage runtime-link=shared runtime-link=static threading=multi debug release

其中的--with-后面为缺失的库名称,--stagedir为编译后存放的目录位置,后面分别编译动态可静态库文件包括debug和release版本。

然后是PLC的安装目录,我安装与此,在CMAKE的CMAKE_INSTALL_PREFIX处进行修改

Flann的目录设置

Qhull的目录设置

然后可以点击Configure,可以勾选BUILD_surface_on_nurbs,Configure后不勾选USE_UMFPACK

注意Eigen的版本不能高于3.2.8,WITH尽量直选需要的,不然编译很容易出错。

 

6.接着Configure,如果没有错误和红色,可以Generate生成。此时会在D:\PCL\Build中生成工程文件。

 

7.我们以管理员身份启动vs2013,打开Build目录下的PCL.sln文件,首先生成Debug版本的ALL_BUILD,完成之后右键INSTALL-仅用于项目-仅生成INSTALL。完成之后将pcl-res中的文件剪切至pcl-debug。

 

8.然后进行release版本的生成和安装。过程同debug版相同。

 

9.进行环境变量的设置,新增PCL_ROOT

加入Path

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章