VS2015+PCL1.8.0 安装注意事项:包含目录,附加依赖项与预处理器

本人安装过程中主要问题出现在:链接库>附加依赖项与预处理器

一、包含目录

 应查看自己的安装目录,不能盲目完全照搬网上教程,include后需再写一级

二、附加依赖项

由于pcl中.lib 较多,且网上教程复制黏贴的.lib极有可能不同,所以给出快速提取.lib的方法:

引用自:http://www.cnblogs.com/blog-vincent-0x1F7/p/9646358.html

各个库目录中的所有.lib文件就是我们的附加依赖项,但是这里要把他们区分为debug模式下的依赖项和release模式下的依赖项,而且.lib文件数量繁多,自己复制这些文件名还要分成debug、release两拨确实太多了。我们可以用批处理命令来帮我们执行。

观察各个库目录可知调试模式和发行模式的分别,在%PCL_ROOT%\lib下的.lib文件加了debug和release来区分,%PCL_ROOT%\3rdParty\Boost\lib下的以有gd的为debug模式否则为release模式,其他各个库目录也都有类似规律,所以可以在各个库目录下写批处理文件导出.lib依赖项:

1.在%PCL_ROOT%\lib下新建文本文档,改后缀名为.bat,笔记本打开编辑如下内容:

@echo off
for %%I in (*.lib) do echo %%I>>all.txt      //解释:对每一个(*.lib)通配符匹配到的文件名I,显示I到文件all.txt,之后的语句类似理解就可
for %%I in (*debug.lib) do echo %%I>>adebug.txt
for %%I in (*release.lib) do echo %%I>>arelease.txt
pause

则会生成adebug.txt保存debug模式下的依赖项、arelease.txt保存release模式下的依赖项、all.txt保存所有依赖项,如下:

2.在%PCL_ROOT%\3rdParty\Boost\lib下编写:

@echo off
for %%I in (*.lib) do echo %%I>>all.txt
for %%I in (*mt-gd-1_64.lib) do echo %%I>>adebug.txt
for %%I in (*mt-1_64.lib) do echo %%I>>arelease.txt
pause

3.

在%PCL_ROOT%\3rdParty\OpenNI2\Lib下只有一个不必用批处理,自己抄一下名称就好;在%PCL_ROOT%\3rdParty\FLANN\lib和%PCL_ROOT%\3rdParty\Qhull\lib下因为不太多故将所有.lib导出到一个all.txt文件然后自己根据有没有_d区分debug和release版本:

@echo off
for %%I in (*.lib) do echo %%I>>all.txt
pause

4.在%PCL_ROOT%\3rdParty\VTK\lib下根据有无-gd区分debug和release,编写bat文件如下:

@echo off
for %%I in (*.lib) do echo %%I>>all.txt
for %%I in (*8.0.lib) do echo %%I>>arelease.txt
for %%I in (*c++.lib) do echo %%I>>arelease.txt
for %%I in (*-gd.lib) do echo %%I>>adebug.txt
pause

最后把所有debug模式下依赖项汇总,把所有release模式下的依赖项汇总即得到设置中所需要的依赖项。另外如果想更简单一点可以把以上的输出文件名改为同一个,这样可以所有debug的输出到一个debug.txt,所有release的输出到一个release.txt,不过要注意的是文件名要使用绝对路径。

三、预处理器

运行一个测试程序很有可能会抛出error c4996错误,

只需在项目-属性-C/C++-预处理器-预处理器定义中添加_SCL_SECURE_NO_WARNINGS就可以。

四、例程:显示兔子点云

点云下载链接:https://pan.baidu.com/s/15LZVm2Kb-tKb1CVofoLSZA    提取码:s03u

#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;
using namespace std;
int viewerOneOff(pcl::visualization::PCLVisualizer& viewer)
{
	viewer.setBackgroundColor(1.0, 0.5, 1.0);   //设置背景颜色
	return 0;
}

int main()
{
	pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);
	char strfilepath[256] = "rabbit.pcd";
	pcl::io::loadPCDFile(strfilepath, *cloud);
	pcl::visualization::CloudViewer viewer("Cloud Viewer");     //创建viewer对象	
	viewer.showCloud(cloud);
	viewer.runOnVisualizationThreadOnce(viewerOneOff);
	system("pause");
	return 0;
}

                                //======================高兴========================//

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值