PCL编程宝典-代码编译常见问题及解决办法

1.提示缺少xxx.dll

解决办法:配置dll有四种方法,第一种,把dll拷贝到system32里去,第二种,把dll拷贝到编译出来的程序的文件中,第三种,在系统的path中添加dll的路径,这种方法设置后需要重启电脑。本文选用第四种方法,直接配置到项目中。具体方法如下:
在“解决方案资源管理器”里选中项目右键点“属性”,然后选“调试”设置环境的变量值,规则如下:

PATH=;$(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)大家根据自己的安装路径,灵活变通。

2.提示缺少xxx.h等头文件

解决办法:这个问题是因为在设置include,即设置附加包含目录,路径不对或缺少导致的。根据提示,检查下项目的属性,C/C++->常规->附加包含目录里,找到对应错误的库的头文件路径,修改或添加其所在文件夹的路径。

3.提示无法解析的外部符号错误

解决方法:这个问题比较难解决,总结起来有四大原因:安装包版本不对、项目的位数和PCL库的位数不对、缺少对应的lib、函数只有声明,没有定义。第一个找对安装包即可,第二个修改项目位数和PCL库的位数一致即可,第三个要根据经验去添加上lib文件,第四个的话,在预处理器里添加PCL_NO_PRECOMPILE即可,当然上面只是经验之谈,要根据实际情况做出调整。

4.提示无法打开xxx.lib

解决方法:一是检查你PCL安装路径下有没有这个lib,如果没有,那就在附加依赖项里把这个lib删除,如果有,则进行第二个检查。二是检查下项目的属性,链接器->附加包含目录,有没有添加上这个lib所在文件夹的路径。

5.出现错误代码为C4996的错误

解决办法:这个错误一般是通过在项目属性的C/C++->预处理器->预处理定义里,添加对应的定义来解决。这里给出一个“一劳永逸”的方法,在C/C++->常规->SDL检查里的值设置为“否 (/sdl-)”。

6.出现无法定位于动态链接库的错误

解决方法:查看下系统环境变量PATH里是否有多个不同版本PCL及相关库的路径,去掉不使用的路径。

7.提示无法打开stdafx.h

解决办法:默认新建的控制台程序,包含mian函数的cpp里会包含这个头文件,而在拷贝代码时,没注意,把这个包含头文件删除了,只要在包含头文件里重新添加上#include “stdafx.h”就可以了,注意要加在所有include的最上面。

7.提示 Worning! PATH too long installer unable to modify PATH!
解决办法:修改系统环境变量里的PATH变量,先将PATH变量的值拷贝保存,然后亲空这个变量的值,再安装PCL,安装完成后,在先前保存的变量值拷贝回去。

发表评论

电子邮件地址不会被公开。 必填项已用*标注