PCL的库配置是真的繁琐,配置了好多次才成功。
Point Cloud Library 1.9.1 + Visual Studio 2017 + Windows 10

#PCL

PCL1.8.0 版本开始代码都托管在了GitHub之上,点击这里直接下载即可:PCL-1.9.1-AllInOne-msvc2017-win64.exe

因为 PCL 会依赖很多插件库,所以下 AllInOne 版本就可以都装上了。

安装的时候一路下一步即可,不过需要注意安装的最后会弹出一个单独的安装程序来安装 OpenNI2。假如我 PCL的安装目录(PCL_ROOT)D:\Program Files\PCL1.9.1[1],那么建议 OpenNI2 的安装目录设置为 %PCL_ROOT%\3rdParty\OpenNI2,即:D:\Program Files\PCL1.9.1\3rdParty\OpenNI2。这样做的目的是为了方便管理第三方库。

至此,PCL 及其相关第三方库安装完成。

#添加环境变量

计算机—>属性—>高级系统属性—>高级—>环境变量 中,添加如下环境变量

变量
PCL_ROOT D:\Program Files\PCL1.9.1
PATH %PCL_ROOT%\bin
PATH %PCL_ROOT%\3rdParty\Boost\lib
PATH %PCL_ROOT%\3rdParty\FLANN\bin
PATH %PCL_ROOT%\3rdParty\OpenNI2\Lib
PATH %PCL_ROOT%\3rdParty\OpenNI2\Redist
PATH %PCL_ROOT%\3rdParty\OpenNI2\Tools
PATH %PCL_ROOT%\3rdParty\Qhull\bin
PATH %PCL_ROOT%\3rdParty\VTK\bin

由于PATH要添加的变量很多,有 8 个,鉴于有人懒得打八次,直接点击编辑文本,将下述内容粘贴到行尾即可,注意分号

编辑文本示意图

%PCL_ROOT%\bin;%PCL_ROOT%\3rdParty\Boost\lib;%PCL_ROOT%\3rdParty\FLANN\bin;%PCL_ROOT%\3rdParty\OpenNI2\Lib;%PCL_ROOT%\3rdParty\OpenNI2\Redist;%PCL_ROOT%\3rdParty\OpenNI2\Tools;%PCL_ROOT%\3rdParty\Qhull\bin;%PCL_ROOT%\3rdParty\VTK\bin;

#VS2017配置

打开VS2017,新建一个 C++空项目即可。

首先打开属性管理器,如果找不到可以在视图->其他窗口->属性管理器中打开,或者直接搜索也可以。

然后在属性管理器-> Release | x64文件夹右键,添加新项目属性表,名字自己起即可。

接着右键刚刚创建的属性表,点击属性,弹出如图所示界面。

属性页

通用属性—>VC++目录—>包含目录 中添加 7 项,这个只能一个一个加,就没法偷懒了。

1
2
3
4
5
6
7
D:\Program Files\PCL1.9.1\include\pcl-1.9
D:\Program Files\PCL1.9.1\3rdParty\Boost\include\boost-1_68
D:\Program Files\PCL1.9.1\3rdParty\Eigen\eigen3
D:\Program Files\PCL1.9.1\3rdParty\FLANN\include
D:\Program Files\PCL1.9.1\3rdParty\OpenNI2\Include
D:\Program Files\PCL1.9.1\3rdParty\Qhull\include
D:\Program Files\PCL1.9.1\3rdParty\VTK\include\vtk-8.1

通用属性—>VC++目录—>库目录 中添加 6 项,同上。

1
2
3
4
5
6
D:\Program Files\PCL1.9.1\lib
D:\Program Files\PCL1.9.1\3rdParty\Boost\lib
D:\Program Files\PCL1.9.1\3rdParty\FLANN\lib
D:\Program Files\PCL1.9.1\3rdParty\OpenNI2\Lib
D:\Program Files\PCL1.9.1\3rdParty\Qhull\lib
D:\Program Files\PCL1.9.1\3rdParty\VTK\lib

C/C++—>预处理器—>预处理器定义 中添加 3 行。

1
2
3
_CRT_SECURE_NO_WARNINGS
_SCL_SECURE_NO_WARNINGS
_SILENCE_FPOS_SEEKPOS_DEPRECATION_WARNING

C/C++—>所有选项—>SDL检查 改为否 (/sdl-)

通用属性—>链接器—>输入—>附加的依赖项 中添加 lib 文件,ReleaseDebug 所需要的库文件不同,写了一个python脚本文件,保存运行就可以了。然后把输出的结果复制添加即可。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/usr/bin/python3
# -*- coding: utf-8 -*-

import os

# 设置PCL的lib目录
PCL_LIB_DIR = 'D:/Program Files/PCL1.9.1/lib'

# 设置VTK的lib目录
VTK_LIB_DIR = 'D:/Program Files/PCL1.9.1/3rdParty/VTK/lib'

# 下列两行二选其一

# VERSION = 'DEBUG'
VERSION = 'RELEASE'

for home, dirs, files in os.walk(PCL_LIB_DIR):
for filename in files:
ext = '_release.lib'
num = -12
if VERSION == 'DEBUG':
ext = '_debug.lib'
num = -10
if filename[num:] == ext:
print(filename)
# fullname = os.path.join(home, filename)
# print(fullname)

for home, dirs, files in os.walk(VTK_LIB_DIR):
for filename in files:
if os.path.splitext(filename)[1] == '.lib':
if VERSION == 'RELEASE' and filename[-6:-4] != 'gd':
print(filename)
if VERSION == 'DEBUG' and filename[-6:-4] == 'gd':
print(filename)

运行结果图

#参考文档


  1. 安装的时候有人建议把目录 PCL 1.9.1 中间的空格删掉,我就照做了。 ↩︎