【PCL】Visual Studio中配置PCL

Visual Studio中配置PCL


前言

在windows上开发PCL程序,首选IDE就是Visual Studio 。本文将介绍如何在VS中配置PCL。

一、下载安装包

把与VS版本对应PCL的AllInOne包下载下来。要下对安装包,需要了解安装包的命名的含义,以下面的一个AllInOne包的名字为例。
PCL-1.8.0-AllInOne-msvc2013-win32.exe
其中,1.8.0表示的PCL的版本号,然后2013表示这个安装包只适用于的编译器为msvc2013,具体编译器版本和Visual Studio的对应关系可以去VS官网查询,最后win32表示这个安装包只能用来开发32位的程序。

二、安装

整个安装过程需要注意以下三点,其它默认即可:
1.安装路径最好不要包括中文;
2.建议勾选上“Add PCL to the system PATH for all users”;
3.安装时,会提示安装OpenNI,这个建议安装在PCL安装路径的3rdParty下的OpenNI2文件夹中。

三、配置

根据当前需要编译的程序位数和传统的直接在“解决方案资源管理器”里选中项目右键设置项目属性的方式,不太灵活。这里以创建属性表的方式来配置VS。这个根据你当前需要生成的程序,往“属性管理器”里项目下对应子项里添加属性表,并配置属性表相关项目,即可成功编译PCL。
在新建的属性表里,有三个必须设置的重要项目:附加包含目录,附加库目录,附加依赖项。
1.附加包含目录,其在项目属性“C/C++”子项的“常规”里下,主要用来设置库的头文件路径。这里设置好PCL及第三方库的头文件路径。
2.附加库目录,其在项目属性的“连接器”子项的“常规”下,主要用来设置库的lib文件路径。这里设置好设置PCL及第三方库的lib文件路径。
3.附加依赖项,其在项目属性的“连接器”子项的“输入”下,主要用来设置编译所需的lib。这里设置好设置PCL及第三方库的lib文件名。
只有理解里上面这三项的作用,才能学到如何去解决配置中产生的一些问题。
在配置完属性表后,还需要配置dll。配置dll有四种方法,
第一种,把dll拷贝到system32里去,
第二种,把dll拷贝到编译出来的程序的文件中,
第三种,在系统的path中添加dll的路径,
第四种方法,直接配置到项目中。
本文用第四种方法配置,具体操作如下:
在“解决方案资源管理器”里选中项目右键点“属性”,然后选“调试”设置环境的变量值,规则如下:
PATH=; ( P A T H ) 在等号后添加所有 P C L 及第三方库的 d l l 路径以英文的“ ; ”隔开,最后加上一个 (PATH) 在等号后添加所有PCL及第三方库的dll路径以英文的“;”隔开,最后加上一个 (PATH)在等号后添加所有PCL及第三方库的dll路径以英文的;隔开,最后加上一个(PATH)即可。例如我设置的如下:

PATH=$(PCL_ROOT)\bin;
$(PCL_ROOT)\3rdParty\FLANN\bin;
$(PCL_ROOT)\3rdParty\VTK\bin;
$(PCL_ROOT)\Qhull\bin;
$(PCL_ROOT)\3rdParty\OpenNI2\Tools;$(PATH)

小技巧:批量生成lib文件名方法

由于PCL中需要添加的lib文件较多,为了提高效率,可以用如下命令批量生成lib文件名。

DIR *d.lib /B >LIB.txt

其中*d.lib是Debug版本的lib文件,release版本需要做相应更改,LIB.txt是生成的LIB文件名,里面保存了各个lib文件名称。

四、测试

安装配置完成后,可用如下示例程序测试是否配置成功

#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 main()
{
	pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new 	pcl::PointCloud<pcl::PointXYZ>);
	char strfilepath[256] = "bunny.pcd";
	if (-1 == pcl::io::loadPCDFile(strfilepath, *cloud)) //打开点云文件
	{
		std::cout << "error input!" << std::endl;
		return -1;
	}
	std::cout<< cloud->points.size() << std::endl;
	pcl::visualization::CloudViewer viewer("Cloud Viewer");     //创建viewer对象
	viewer.showCloud(cloud);
	system("pause");
	return 0;
}
  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shanhedian2013

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值