VS2017+PCL1.8.1+Cmake(3.6 or later)环境配置

参考博客:

http://unanancyowen.com/en/pcl181/     点击打开链接        内含PCL1.8.1ALL-in-one Installer MSVC2017 (x32,x64)以及PCL1.8.1 PDB MSVC2017(x32,x64)


https://segmentfault.com/a/1190000003988970 

其中vs2017的安装较为简单,这里就不再赘言了。

1.软件角色

pcl是点云算法库。
pcl-pdb是pcl的数据库文件。
cmake是用来为你所编写的程序进行环境配置及生成项目文件。有blog提供不使用Cmake的解决方案,但是从使用上将,建议安装Cmake,这样就不需要每次编写项目的时候还要兼顾配置环境变量。毕竟包含目录,库目录,以及链接器--输入--附加依赖项中加入lib文件是一件并不轻松的工作。
visual studion是windows的开发工具,将经过cmake生成的项目文件执行产生可执行文件。
qt是一个图形库,这里需要安装qt是因为pcl中有一个第三库vtk中涉及qt库中的函数。某些VTK库中的函数对qt有依赖,因此虽然目前不知道用处,但是还是安装了QT。

2.安装PCL1.8.1






由于OpenNI2需要另外安装,其安装路径应在$PCL-ROOT/PCL 1.8.1\3rdParty\OpenNI2下。之后一路点下一步就好。

3.安装Cmake



然后一路next,安装非常简单。


4.利用Cmake进行编译

准备工作

首先在pcl1.8.1文件夹下新建文件夹,可命名为example。如下图:


注意,确定自己安装的文件夹包含cmake文件,且内含PCLConfig.cmake、PCLConfigVersion.cmake如下图:


否则,cmake将一直报错。

在example文件下建立两个文件夹,如图:


cmake-bin是空文件夹,方便编译后的文件存储。

source文件包括:


其中Cmakelists.txt中包含下列cmake程序(可直接粘贴复制):

cmake_minimum_required(VERSION 2.6 FATAL_ERROR)
project(pcd_write_test)
find_package(PCL 1.3 REQUIRED COMPONENTS common io)
include_directories(${PCL_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINITIONS})
add_executable(pcd_write_test pcd_write.cpp)
target_link_libraries(pcd_write_test ${PCL_COMMON_LIBRARIES} ${PCL_IO_LIBRARIES})
代码的具体含义可参考:
http://pointclouds.org/documentation/tutorials/using_pcl_pcl_config.php
点击打开链接
同时在vs2017中新建项目,名称设为pcd_write  其中输入测试代码,如:

#include <pcl/visualization/cloud_viewer.h>  
#include <iostream>//标准C++库中的输入输出类相关头文件。  
#include <pcl/io/io.h>  
#include <pcl/io/pcd_io.h>//pcd 读写类相关的头文件。  
#include <pcl/io/ply_io.h>  
#include <pcl/point_types.h> //PCL中支持的点类型头文件。  
int user_data;

void viewerOneOff(pcl::visualization::PCLVisualizer& viewer)
{
	viewer.setBackgroundColor(1.0, 0.5, 1.0);   //设置背景颜色  

}


int main()
{
	pcl::PointCloud<pcl::PointXYZRGBA>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZRGBA>);


	pcl::io::loadPCDFile("test.pcd", *cloud);
	pcl::visualization::CloudViewer viewer("Cloud Viewer");     //创建viewer对象  

	viewer.showCloud(cloud);

	viewer.runOnVisualizationThreadOnce(viewerOneOff);

	system("pause");

	return 0;

}

将其保存在PCL1.8.1/example/source文件夹下


开始编译

打开Cmake,


值得注意的有几点:

1.将where is the source code和where to build the binaries 如图设置好后,会弹出选择VS版本的选项,选择 VS 15 2017 win64.可根据自身版本进行选择。

2.框格中有红色字体报warning不用慌,只要如下:


出现Configuring done 和Generating done之后,即说明Cmake编译成功。二者的作用如下:


这个时候,就可以愉快的进入Cmake-bin文件夹,此时该文件下下应为:


设置的名称不同,sln文件名和vcvproj的文件名会和图中不一致,不必纠结,可对应即可。

打开Sln文件,进行vs2017.

如出现如下error1:

无法启动程序D:\build\debug\ALL_BUILD 系统找不到指定文件;

处理办法为:

将project_inliers工程设置为启动项目    找到项目右击--设为启动项目。

将project_inliers工程设置为启动项目

error2:

error LNK2019: 无法解析的外部符号

处理办法为:

在VC++目录--库目录中加入PCL1.8.1/lib文件;

在附加依赖项中加入:pcl下 的lib文件名:

如:

pcl_common_debug.lib
pcl_common_release.lib
pcl_features_debug.lib
pcl_features_release.lib
pcl_filters_debug.lib
pcl_filters_release.lib
pcl_io_debug.lib
pcl_io_ply_debug.lib
pcl_io_ply_release.lib
pcl_io_release.lib
pcl_kdtree_debug.lib
pcl_kdtree_release.lib
pcl_keypoints_debug.lib
pcl_keypoints_release.lib
pcl_ml_debug.lib
pcl_ml_release.lib
pcl_octree_debug.lib
pcl_octree_release.lib
pcl_outofcore_debug.lib
pcl_outofcore_release.lib
pcl_people_debug.lib
pcl_people_release.lib
pcl_recognition_debug.lib
pcl_recognition_release.lib
pcl_registration_debug.lib
pcl_registration_release.lib
pcl_sample_consensus_debug.lib
pcl_sample_consensus_release.lib
pcl_search_debug.lib
pcl_search_release.lib
pcl_segmentation_debug.lib
pcl_segmentation_release.lib
pcl_stereo_debug.lib
pcl_stereo_release.lib
pcl_surface_debug.lib
pcl_surface_release.lib
pcl_tracking_debug.lib
pcl_tracking_release.lib
pcl_visualization_debug.lib
pcl_visualization_release.lib


可能有同学会问:如何一下得到上述的lib文件名称,而不是一个一个的粘贴复制:

有方法如下:

分别粘贴复制静态链接库名到文本甚是麻烦,故通过批处理来完成


例如要获取目录中E:\CPlusPlusLib\VTK_debug\VTK2008\lib\vtk-5.8下的所有静态链接库文件名并存储至文本.txt,方法如下: 
1、win+r 
2、输入:cmd回车 
3、输入:cd /d E:\CPlusPlusLib\VTK_debug\VTK2008\lib\vtk-5.8 回车 
4、输入:dir /b *.lib*>0.txt 回车 

在0.txt文件中即可获得。



按照上述方法运行编译后的pcd_write.cpp文档不报错,且出现:



即为安装 成功,至于为什么是这三种颜色,而不是test.pcd 中的兔子

 因为没有点云的数据库啊!!!


评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值