PCL配置:VS2017+PCL1.8.1,死磕PCL配置

经历了两天的配置,终于弄好了,借用一位博主的话,如果教程不能用,就不要上传,在此,我奉上自己配置过程中的一些问题与步骤。

PCL下载:(https://github.com/PointCloudLibrary/pcl/releases)

下载需要下载AllInOne 和pdb两个包。

然后就是进行配置了,配置的过程参考了好几篇博客,最终我用了这篇博客:

https://blog.csdn.net/u011197534/article/details/52960394

加载rabbit.pcd我用的这个代码来自(https://www.cnblogs.com/baby123/p/10950907.html):

#pragma warning(disable:4996)
#include
#include
#include
#include 

int main(int argc, char** argv) {
	pcl::PointCloud::Ptr cloud(new pcl::PointCloud);

	//
	//*打开点云文件
	if (pcl::io::loadPCDFile("rabbit.pcd", *cloud) == -1) {
		PCL_ERROR("Couldn't read file rabbit.pcd\n");
		return(-1);
	}
	std::cout << cloud->points.size() << std::endl;
	pcl::visualization::CloudViewer viewer("cloud viewer");
	viewer.showCloud(cloud);
	while (!viewer.wasStopped()) {

	}
	system("pause");
	return 0;
}

 

接下来就是出现的问题了:

1、配置过程中会出现Warning! PATH too long installer unable to modify PATH!,这个问题我找了好久都没找到解决方案,如果有同行发现,可以在下面留言。最终我是换了一台电脑,重新安装就没有出现这个问题。

2、出现C4996错误,你在代码前面加入#pragma warning(disable:4996)

3、生成解决方案后运行出现:Project1.exe"(Win32): 已加载"C:\Windows\System32\oleacc.dll".无法查找或......需要将点 调试按钮,然后选择 选项和设置,勾选 启用源服务器支持,点击左侧符号,勾选微软符号服务器,运行程序,加载、待加载完成,再复原。

4、运行PCL时出现Failed to find match for field 'rgba',可能是你拷贝找别人代码,并不适合你的文件加载,建议你用别人代码的同时也用别人的数据(或者看一下别人的数据格式),再或者你用我上面的代码来加载rabbit.pcd文件

5、配置PCL1.8.1库时OpenNI2.dll丢失问题的解决方法,网上也有很多方式,在此我推荐这个博客(https://blog.csdn.net/Di_Wong/article/details/81325589)下面有评论,我用的是吧这个ddl文件放到C:\Windows\System32这个文件夹下就行了。

6、关于出现无法解析的外部命令: error LNK2019: 无法解析的外部符号 "public: bool __thiscall pcl::visualization::PCLVisualizer::addText(class std::basic_string,class std::allocator > const &,int,int,class std::basic_string,class std::allocator > const &,int)" (?addText@PCLVisualizer@visualization@pcl@@QAE_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@HH0H@Z),该符号在函数 "void __cdecl viewerPsycho(class pcl::visualization::PCLVisualizer &)" (?viewerPsycho@@YAXAAVPCLVisualizer@visualization@pcl@@@Z) 中被引用

由此等等,可能是因为你没加载D:\PCL 1.8.1\lib这个库里的文件,所以你需要把附加依赖项里的.lib给补充完整。

7、网上很多让你添加附加依赖项直接让拷贝的方法,在此我不推荐,由此推荐一个博客可以找到自己lib库里的所有附加依赖项,直接复制即可。

win+r调出“运行”窗口并输出cmd

输入:cd /d D:\P_pcl\PCL1.9.0\PCL 1.9.0\3rdParty\VTK\lib 回车 (填自己的路径)

输入:dir /b *.lib *>0.txt 回车

具体图示如下:

PCL配置:VS2017+PCL1.8.1,死磕PCL配置_第1张图片

然后你的D:\PCL 1.8.1\3rdParty\VTK\lib路径下会出现0.txt文件,里面就全部都是你的lib苦,最后借用这个博客里的代码https://blog.csdn.net/weixin_41991128/article/details/83965051将读取一个txt文件,将其中奇数行和偶数行单独输出到新的txt文档,其中1.txt是DUG模式下的lib,2是Release模式下的lib,当然,在添加所有附加依赖项时第六步中的依赖项。

你可能感兴趣的:(c++,视频,PCL,c++)