Windows10 + vs2017下安装PCL 1.9.1
Windows10 + vs2017下安装PCL 1.9.1
- 下载相关文件:
- Windows下安装步骤:
- Windows下环境配置:
- vs2017下的配置:
- 出现的问题和解决方式
下载相关文件:
- 下载地址:github
- 下载PCL安装文件:PCL-1.9.1-AllInOne-msvc2017-win64.exe
- 下载PCL的pdb文件:pcl-1.9.1-pdb-msvc2017-win64.zip
- 注意:下载适当的版本:这里有32位和64位的,要看你的VS2017安装的是多少位的,我的操作系统是64位,我的VS2017的是64位,所以我选择64位的版本。(如果是32位系统,必然选择32位的)
Windows下安装步骤:
用管理员权限打开PCL-1.9.1-AllInOne-msvc2017-win64.exe

选择添加PCL路径到所有用户(就是在系统环境变量下添加了PCL路径)

一直点击下一步,到达选择路径的界面,这里我选择的安装在D盘

注意: 安装路径最好不要包括空格和中文字符
一直点击下一步,到达组件安装局面,这里安装所有的库

安装过程中会提示安装openni,将路径更改到自己选定的安装PCL的第三方库OpenNI2的路径下

之后就会完成所有的安装

解压pcl-1.9.1-pdb-msvc2017-win64.zip,将解压之后的所有pdb文件复制到PCL安装路径下的bin文件夹下

至此,安装部分结束,接下来是配置部分
Windows下环境配置:
查看环境变量是否加入(查漏补缺)



值得注意的是:在Path中加入环境的时候,我发现相对路径有会失效的问题,于是在最后加了两条绝对路径。
至此,windows环境下配置结束,接下来是vs2017配置部分
vs2017下的配置:
-
新建一个工程

-
打开工程的属性页

- 注意:因为安装的是64位的PCL,所以平台一定要选择x64,不然编译会出错。
-
设置包含目录和库目录
-
包含目录

-
设置库目录

-
-
附加依赖项设置
1.
依赖项就是依赖的库,这里的附加依赖项就是PCL安装目录下所有的库(lib)文件
注意:这里的库文件会有两种版本
(1) debug版本
(2) release版本
在不同的版本下(debug和release版本),需要添加对应版本的依赖库,不然会出错
2.
依赖项名称获取
PCL的本身的以及第三方库的数量非常多,最好是用批处理的方式来获取库的名字。
批处理脚本创建方式:新建一个txt文档,复制下面的代码进去,改后缀名为bat即可。
以下代码中,如果你安装的PCL版本和我的不一样,需要酌情修改其中的一部分。
%PCL_ROOT% 是指安装PCL的目录
(1) %PCL_ROOT%\lib
@echo off
dir /b *.lib > all.txt
dir /b *debug.lib > debug.txt
dir /b *release.lib > release.txt
exit
(2) %PCL_ROOT%\3rdParty\Boost\lib
@echo off
dir /b *.lib > all.txt
dir /b *mt-gd-x64-1_68.lib > debug.txt
dir /b *mt-x64-1_68.lib > release.txt
exit
(3) %PCL_ROOT%\3rdParty\VTK\lib
@echo off
dir /b *.lib > all.txt
dir /b *gd.lib > debug.txt
dir /b *8.1.lib > release.txt
exit
(4) %PCL_ROOT%\3rdParty\OpenNI2\Lib
只有一个不必用批处理,自己抄一下名称就好
(5) %PCL_ROOT%\3rdParty\FLANN\lib 和 %PCL_ROOT%\3rdParty\Qhull\lib
@echo off
dir /b *.lib > all.txt
exit
文件不太多,就只导入到一个文件中了,其中带有gd的是debug版本,没有的是release版本,手动复制即可。
3.
依赖项添加

注意:添加依赖项的时候,需要将之前获取的依赖名称全部拷贝到附加依赖项里面,当然,还是要注意对应版本。
如果你和我一样安装的是PCL-1.9.1-AllInOne-msvc2017-win64.exe,那么我已经整理好了,下面是链接:
链接:https://pan.baidu.com/s/1AOZOOkJNslKT7dHFhv4P6w 提取码:gxwc
至此,vs2017下配置结束,PCL也就在你的电脑上配置完成
出现的问题和解决方式
出现 error2038的错误提示:
error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(***.obj 中)
这就是附加依赖库添加错误,如果在release下,添加release版本的库,debug下,添加debug版本的库,如果你全部添加了,哪个添加在前,起作用的就是那个库。所以,务必注意添加的库的版本。
出现函数申明被否决的错误提示:
解决方法:在工程属性中,更改一些设置:
(1) 更改SDL检查: 是 改成 否

(2)在预处理器定义中加入:
_SCL_SECURE_NO_WARNINGS
_CRT_SECURE_NO_WARNINGS

