一.安装VS

自己去官网下载安装就可以,我用的是社区版的,用来学习完全够用。

二.安装PCL

1.下载PCL,官网(http://pointclouds.org/downloads/windows.html)后来没有更新。

所以要新版的话,去git上下载(https://github.com/PointCloudLibrary/pcl/releases)

需要下载AllInOnepdb两个包。

我下载的PCL-1.8.1版本,即选择PCL-1.8.1-AllInOne-msvc2017-win64.exepcl-1.8.1-pdb-msvc2017-win64.zip两个文件。

也可以在百度云上下载:

链接:https://pan.baidu.com/s/1gRxbIPUmG4z8DJX2JPL8TA 
提取码:7qn7

百度云上是这样的,两个包都要下载下来。还有“五.测试”要用的rabbit.pcd文件,一并下载下来。

2.双击下载的 PCL-1.8.1-AllInOne-msvc2017-win64.exe 文件进行安装。

注意以下几步的选择:

我在安装这类库相关的软件的时候都会尽量避免在路径中带有空格,因为有些软件在检查路径的时候可能会由于空格引发各种问题。因此我把默认的路径中的空格换成了下划线_。当然,Windows默认的Program Files目录无视这条规则,毕竟微软自己设置的目录名不会出现路径的问题。因此,我这里设置的路径是C:\Program Files\PCL_1_8_1

这里需要配置需要安装的其他库,如果自己不确定到底有没有其他的软件安装过相关的库,那么就全部都勾选了,否则由于库的缺失,点云库就不能正常工作。

【注意】第三方库中有个OpenNI,看一下自己有没有装过,如果装过可以先卸载,不能卸载的在下面的配置路径中要多加注意。

接下来点击安装

一段时间之后,会弹出来一个OpenNI2的安装窗口。把OpenNI2安装在3rdParty文件夹里,即C:\Program Files\PCL_1_8_1\3rdParty\OpenNI2。当然,也可以自己设置路径,一定要记住路径,因为下面的配置要用到。

OpenNI2安装结束之后就完成了点云库的完整安装,安装目录文件夹、3rdparty文件夹、OpenNI2文件夹的样子如下图:

可以看到,我把所有的第三方库全部安装到了3rdparty文件夹中

最后,将pdb包解压,将解压后的文件拷贝到C:\Program Files\PCL_1_8_1\bin,也就是主目录下的bin中。

三.环境变量配置

右键点击此电脑,选择属性,接着点击左侧的高级系统设置,然后选择高级选项卡,点击下面的环境变量...按钮,此时便打开了环境变量的配置窗口。

此时,我们可以看到PCL的根目录以及OpenNI2的目录已经添加到了系统变量中。

然后,我们双击系统变量中的Path,再将以下的目录添加到Path中(注意最后一个OpenNI2的路径,要和自己刚刚安装的路径一样才行):

1
2
3
4
5
6
%PCL_ROOT%\bin
%PCL_ROOT%\3rdParty\VTK\bin
%PCL_ROOT%\3rdParty\FLANN\bin
%OPENNI2_REDIST64%
%PCL_ROOT%\3rdParty\Qhull\bin
%PCL_ROOT%\3rdParty\OpenNI2\Tools

如果用的电脑的操作系统是Windows 10的话,就上面几个路径一个一个复制下来,然后添加到Path的窗格中即可,非常方便,如下图所示:

如果是其他版本的Windows系统,则需要把上面的几个路径写成下面的这种形式,然后叠加到Path环境变量的后面(具体的做法可以去搜索Windows 7环境变量的配置方式):

1
%PCL_ROOT%\bin;%PCL_ROOT%\3rdParty\VTK\bin;%PCL_ROOT%\3rdParty\FLANN\bin;%OPENNI2_REDIST64%;%PCL_ROOT%\3rdParty\Qhull\bin;%PCL_ROOT%\3rdParty\OpenNI2\Tools

重启电脑来应用环境变量。

四.Visual Studio开发环境配置

Visual Studio提供了两种编译模式:Debug和Release。Debug模式下,生成的应用程序中会插入许多的调试指令,因此调试起来及其方便,但是大幅度降低了程序的运行速度;Release模式便会提高程序的速度,但是调试相对较困难一些。在某些需求下,可能需要处理大量的数据,因此需要使用Release模式生成应用程序。本教程将对两种模式分别进行配置,适应不同的需求。

首先打开Visual Studio,然后新建一个C++的控制太项目,我这里创建的C++工程名字是pcl_test3

接下来,右键点击解决方案管理器中的pcl_test3,然后选择属性。这时便打开了项目属性窗口。

我们先来配置Debug模式。首先在窗口最上方选择Debug,然后选择自己在下载点云库时候选择的平台,我这里选择x64(注意这里一定不要选错),如下图所示:

接着点击该窗口左侧的VC++ 目录,然后点击右侧的包含目录右侧的下拉菜单,选择编辑...,将以下目录填入窗口中:

  • C:\Program Files\PCL_1_8_1\3rdParty\OpenNI2\Include
  • C:\Program Files\PCL_1_8_1\include\pcl-1.8
  • C:\Program Files\PCL_1_8_1\3rdParty\VTK\include\vtk-8.0
  • C:\Program Files\PCL_1_8_1\3rdParty\QHull\include
  • C:\Program Files\PCL_1_8_1\3rdParty\FLANN\include
  • C:\Program Files\PCL_1_8_1\3rdParty\Eigen\eigen3
  • C:\Program Files\PCL_1_8_1\3rdParty\Boost\include\boost-1_64

注意:这里的C:\Program Files\PCL_1_8_1是刚刚安装点云库的路径,根据刚刚安装点云的路径进行修改。同时还要注意高亮字体的版本问题,需要打开相关目录进行检查。比如我这里的vtk就是8.0的,而boost是1.64版本的。配置好之后点击确定即可如下图所示:

然后点击右侧的库目录右侧的下拉菜单,选择编辑...,将以下目录填入窗口中:

  • C:\Program Files\PCL_1_8_1\3rdParty\OpenNI2\Lib
  • C:\Program Files\PCL_1_8_1\3rdParty\VTK\lib
  • C:\Program Files\PCL_1_8_1\3rdParty\Qhull\lib
  • C:\Program Files\PCL_1_8_1\3rdParty\FLANN\lib
  • C:\Program Files\PCL_1_8_1\3rdParty\Boost\lib
  • C:\Program Files\PCL_1_8_1\lib

同样需要注意路径问题,配置好之后点击确定即可,如下图所示:

然后点击属性页中的C/C++下的预处理器,点击右侧的预处理器定义右侧的下拉菜单,选择编辑...,添加如下两条定义:

1
2
_SCL_SECURE_NO_WARNINGS
_CRT_SECURE_NO_WARNINGS

然后再点击预编译头,将右侧的预编译头设置为不使用预编译头。这个设置可以依据自己的习惯决定,可以省略。

接着点击属性页中的链接器下的输入,点击右侧的附加依赖项右侧的下拉菜单,选择编辑...,将如下文件名填写到窗口中:

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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
vtknetcdf_c++-gd.lib
pcl_common_debug.lib
pcl_features_debug.lib
pcl_filters_debug.lib
pcl_io_ply_debug.lib
pcl_io_debug.lib
pcl_kdtree_debug.lib
pcl_keypoints_debug.lib
pcl_ml_debug.lib
pcl_octree_debug.lib
pcl_outofcore_debug.lib
pcl_people_debug.lib
pcl_recognition_debug.lib
pcl_registration_debug.lib
pcl_sample_consensus_debug.lib
pcl_search_debug.lib
pcl_segmentation_debug.lib
pcl_stereo_debug.lib
pcl_surface_debug.lib
pcl_tracking_debug.lib
pcl_visualization_debug.lib
libboost_atomic-vc141-mt-gd-1_64.lib
libboost_bzip2-vc141-mt-gd-1_64.lib
libboost_chrono-vc141-mt-gd-1_64.lib
libboost_container-vc141-mt-gd-1_64.lib
libboost_context-vc141-mt-gd-1_64.lib
libboost_coroutine-vc141-mt-gd-1_64.lib
libboost_date_time-vc141-mt-gd-1_64.lib
libboost_exception-vc141-mt-gd-1_64.lib
libboost_fiber-vc141-mt-gd-1_64.lib
libboost_filesystem-vc141-mt-gd-1_64.lib
libboost_graph-vc141-mt-gd-1_64.lib
libboost_graph_parallel-vc141-mt-gd-1_64.lib
libboost_iostreams-vc141-mt-gd-1_64.lib
libboost_locale-vc141-mt-gd-1_64.lib
libboost_log-vc141-mt-gd-1_64.lib
libboost_log_setup-vc141-mt-gd-1_64.lib
libboost_math_c99-vc141-mt-gd-1_64.lib
libboost_math_c99f-vc141-mt-gd-1_64.lib
libboost_math_c99l-vc141-mt-gd-1_64.lib
libboost_math_tr1-vc141-mt-gd-1_64.lib
libboost_math_tr1f-vc141-mt-gd-1_64.lib
libboost_math_tr1l-vc141-mt-gd-1_64.lib
libboost_mpi-vc141-mt-gd-1_64.lib
libboost_numpy3-vc141-mt-gd-1_64.lib
libboost_numpy-vc141-mt-gd-1_64.lib
libboost_prg_exec_monitor-vc141-mt-gd-1_64.lib
libboost_program_options-vc141-mt-gd-1_64.lib
libboost_python3-vc141-mt-gd-1_64.lib
libboost_python-vc141-mt-gd-1_64.lib
libboost_random-vc141-mt-gd-1_64.lib
libboost_regex-vc141-mt-gd-1_64.lib
libboost_serialization-vc141-mt-gd-1_64.lib
libboost_signals-vc141-mt-gd-1_64.lib
libboost_system-vc141-mt-gd-1_64.lib
libboost_test_exec_monitor-vc141-mt-gd-1_64.lib
libboost_thread-vc141-mt-gd-1_64.lib
libboost_timer-vc141-mt-gd-1_64.lib
libboost_type_erasure-vc141-mt-gd-1_64.lib
libboost_unit_test_framework-vc141-mt-gd-1_64.lib
libboost_wave-vc141-mt-gd-1_64.lib
libboost_wserialization-vc141-mt-gd-1_64.lib
libboost_zlib-vc141-mt-gd-1_64.lib
flann-gd.lib
flann_cpp-gd.lib
flann_cpp_s-gd.lib
flann_s-gd.lib
qhull_d.lib
qhullcpp_d.lib
qhullstatic_d.lib
qhullstatic_r_d.lib
qhull_p_d.lib
qhull_r_d.lib
vtkalglib-8.0-gd.lib
vtkChartsCore-8.0-gd.lib
vtkCommonColor-8.0-gd.lib
vtkCommonComputationalGeometry-8.0-gd.lib
vtkCommonCore-8.0-gd.lib
vtkCommonDataModel-8.0-gd.lib
vtkCommonExecutionModel-8.0-gd.lib
vtkCommonMath-8.0-gd.lib
vtkCommonMisc-8.0-gd.lib
vtkCommonSystem-8.0-gd.lib
vtkCommonTransforms-8.0-gd.lib
vtkDICOMParser-8.0-gd.lib
vtkDomainsChemistry-8.0-gd.lib
vtkexoIIc-8.0-gd.lib
vtkexpat-8.0-gd.lib
vtkFiltersAMR-8.0-gd.lib
vtkFiltersCore-8.0-gd.lib
vtkFiltersExtraction-8.0-gd.lib
vtkFiltersFlowPaths-8.0-gd.lib
vtkFiltersGeneral-8.0-gd.lib
vtkFiltersGeneric-8.0-gd.lib
vtkFiltersGeometry-8.0-gd.lib
vtkFiltersHybrid-8.0-gd.lib
vtkFiltersHyperTree-8.0-gd.lib
vtkFiltersImaging-8.0-gd.lib
vtkFiltersModeling-8.0-gd.lib
vtkFiltersParallel-8.0-gd.lib
vtkFiltersParallelImaging-8.0-gd.lib
vtkFiltersPoints-8.0-gd.lib
vtkFiltersProgrammable-8.0-gd.lib
vtkFiltersSelection-8.0-gd.lib
vtkFiltersSMP-8.0-gd.lib
vtkFiltersSources-8.0-gd.lib
vtkFiltersStatistics-8.0-gd.lib
vtkFiltersTexture-8.0-gd.lib
vtkFiltersTopology-8.0-gd.lib
vtkFiltersVerdict-8.0-gd.lib
vtkfreetype-8.0-gd.lib
vtkGeovisCore-8.0-gd.lib
vtkgl2ps-8.0-gd.lib
vtkhdf5-8.0-gd.lib
vtkhdf5_hl-8.0-gd.lib
vtkImagingColor-8.0-gd.lib
vtkImagingCore-8.0-gd.lib
vtkImagingFourier-8.0-gd.lib
vtkImagingGeneral-8.0-gd.lib
vtkImagingHybrid-8.0-gd.lib
vtkImagingMath-8.0-gd.lib
vtkImagingMorphological-8.0-gd.lib
vtkImagingSources-8.0-gd.lib
vtkImagingStatistics-8.0-gd.lib
vtkImagingStencil-8.0-gd.lib
vtkInfovisCore-8.0-gd.lib
vtkInfovisLayout-8.0-gd.lib
vtkInteractionImage-8.0-gd.lib
vtkInteractionStyle-8.0-gd.lib
vtkInteractionWidgets-8.0-gd.lib
vtkIOAMR-8.0-gd.lib
vtkIOCore-8.0-gd.lib
vtkIOEnSight-8.0-gd.lib
vtkIOExodus-8.0-gd.lib
vtkIOExport-8.0-gd.lib
vtkIOExportOpenGL-8.0-gd.lib
vtkIOGeometry-8.0-gd.lib
vtkIOImage-8.0-gd.lib
vtkIOImport-8.0-gd.lib
vtkIOInfovis-8.0-gd.lib
vtkIOLegacy-8.0-gd.lib
vtkIOLSDyna-8.0-gd.lib
vtkIOMINC-8.0-gd.lib
vtkIOMovie-8.0-gd.lib
vtkIONetCDF-8.0-gd.lib
vtkIOParallel-8.0-gd.lib
vtkIOParallelXML-8.0-gd.lib
vtkIOPLY-8.0-gd.lib
vtkIOSQL-8.0-gd.lib
vtkIOTecplotTable-8.0-gd.lib
vtkIOVideo-8.0-gd.lib
vtkIOXML-8.0-gd.lib
vtkIOXMLParser-8.0-gd.lib
vtkjpeg-8.0-gd.lib
vtkjsoncpp-8.0-gd.lib
vtklibharu-8.0-gd.lib
vtklibxml2-8.0-gd.lib
vtklz4-8.0-gd.lib
vtkmetaio-8.0-gd.lib
vtkNetCDF-8.0-gd.lib
vtkoggtheora-8.0-gd.lib
vtkParallelCore-8.0-gd.lib
vtkpng-8.0-gd.lib
vtkproj4-8.0-gd.lib
vtkRenderingAnnotation-8.0-gd.lib
vtkRenderingContext2D-8.0-gd.lib
vtkRenderingContextOpenGL-8.0-gd.lib
vtkRenderingCore-8.0-gd.lib
vtkRenderingFreeType-8.0-gd.lib
vtkRenderingGL2PS-8.0-gd.lib
vtkRenderingImage-8.0-gd.lib
vtkRenderingLabel-8.0-gd.lib
vtkRenderingLIC-8.0-gd.lib
vtkRenderingLOD-8.0-gd.lib
vtkRenderingOpenGL-8.0-gd.lib
vtkRenderingVolume-8.0-gd.lib
vtkRenderingVolumeOpenGL-8.0-gd.lib
vtksqlite-8.0-gd.lib
vtksys-8.0-gd.lib
vtktiff-8.0-gd.lib
vtkverdict-8.0-gd.lib
vtkViewsContext2D-8.0-gd.lib
vtkViewsCore-8.0-gd.lib
vtkViewsInfovis-8.0-gd.lib
vtkzlib-8.0-gd.lib
opengl32.lib

注意:这些文件名中涉及到版本问题。libboost_atomic-vc141-mt-gd-1_64.lib等文件中的vc1411_64等文字需要到C:\Program Files\PCL_1_8_1\3rdParty\Boost\lib文件夹下进行确认后修改;vtkalglib-8.0-gd.lib等文件中的8.0需要到C:\Program Files\PCL_1_8_1\3rdParty\VTK\lib文件夹下进行确认后修改。同样,这两个路径根据自己电脑的安装情况而定。

这时,点击确定,我们在Debug模式下的点云开发环境就配置完成了。

Debug下完成后,先转到 “五.测试” 进行测试,测试无误后在配置Release下。

接下来说一下Release模式的配置。还是右键点击解决方案管理器中的pcl_test,然后选择属性,然后在窗口最上方选择Release,然后选择自己在下载点云库时候选择的平台。

然后按照Debug模式的配置方式依次配置,只是链接器下的输入中的附加依赖项中的文件列表不相同,需要填写为下面的文件:

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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
pcl_common_release.lib
pcl_features_release.lib
pcl_filters_release.lib
pcl_io_release.lib
pcl_io_ply_release.lib
pcl_kdtree_release.lib
pcl_keypoints_release.lib
pcl_ml_release.lib
pcl_octree_release.lib
pcl_outofcore_release.lib
pcl_people_release.lib
pcl_recognition_release.lib
pcl_registration_release.lib
pcl_sample_consensus_release.lib
pcl_search_release.lib
pcl_segmentation_release.lib
pcl_stereo_release.lib
pcl_surface_release.lib
pcl_tracking_release.lib
pcl_visualization_release.lib
libboost_atomic-vc141-mt-1_64.lib
libboost_chrono-vc141-mt-1_64.lib
libboost_container-vc141-mt-1_64.lib
libboost_context-vc141-mt-1_64.lib
libboost_coroutine-vc141-mt-1_64.lib
libboost_date_time-vc141-mt-1_64.lib
libboost_exception-vc141-mt-1_64.lib
libboost_filesystem-vc141-mt-1_64.lib
libboost_graph-vc141-mt-1_64.lib
libboost_iostreams-vc141-mt-1_64.lib
libboost_locale-vc141-mt-1_64.lib
libboost_log-vc141-mt-1_64.lib
libboost_log_setup-vc141-mt-1_64.lib
libboost_math_c99-vc141-mt-1_64.lib
libboost_math_c99f-vc141-mt-1_64.lib
libboost_math_c99l-vc141-mt-1_64.lib
libboost_math_tr1-vc141-mt-1_64.lib
libboost_math_tr1f-vc141-mt-1_64.lib
libboost_math_tr1l-vc141-mt-1_64.lib
libboost_mpi-vc141-mt-1_64.lib
libboost_prg_exec_monitor-vc141-mt-1_64.lib
libboost_program_options-vc141-mt-1_64.lib
libboost_random-vc141-mt-1_64.lib
libboost_regex-vc141-mt-1_64.lib
libboost_serialization-vc141-mt-1_64.lib
libboost_signals-vc141-mt-1_64.lib
libboost_system-vc141-mt-1_64.lib
libboost_test_exec_monitor-vc141-mt-1_64.lib
libboost_thread-vc141-mt-1_64.lib
libboost_timer-vc141-mt-1_64.lib
libboost_unit_test_framework-vc141-mt-1_64.lib
libboost_wave-vc141-mt-1_64.lib
libboost_wserialization-vc141-mt-1_64.lib
vtkalglib-8.0.lib
vtkChartsCore-8.0.lib
vtkCommonColor-8.0.lib
vtkCommonComputationalGeometry-8.0.lib
vtkCommonCore-8.0.lib
vtkCommonDataModel-8.0.lib
vtkCommonExecutionModel-8.0.lib
vtkCommonMath-8.0.lib
vtkCommonMisc-8.0.lib
vtkCommonSystem-8.0.lib
vtkCommonTransforms-8.0.lib
vtkDICOMParser-8.0.lib
vtkDomainsChemistry-8.0.lib
vtkexoIIc-8.0.lib
vtkexpat-8.0.lib
vtkFiltersAMR-8.0.lib
vtkFiltersCore-8.0.lib
vtkFiltersExtraction-8.0.lib
vtkFiltersFlowPaths-8.0.lib
vtkFiltersGeneral-8.0.lib
vtkFiltersGeneric-8.0.lib
vtkFiltersGeometry-8.0.lib
vtkFiltersHybrid-8.0.lib
vtkFiltersHyperTree-8.0.lib
vtkFiltersImaging-8.0.lib
vtkFiltersModeling-8.0.lib
vtkFiltersParallel-8.0.lib
vtkFiltersParallelImaging-8.0.lib
vtkFiltersPoints-8.0.lib
vtkFiltersProgrammable-8.0.lib
vtkFiltersSelection-8.0.lib
vtkFiltersSMP-8.0.lib
vtkFiltersSources-8.0.lib
vtkFiltersStatistics-8.0.lib
vtkFiltersTexture-8.0.lib
vtkFiltersTopology-8.0.lib
vtkFiltersVerdict-8.0.lib
vtkfreetype-8.0.lib
vtkGeovisCore-8.0.lib
vtkgl2ps-8.0.lib
vtkhdf5-8.0.lib
vtkhdf5_hl-8.0.lib
vtkImagingColor-8.0.lib
vtkImagingCore-8.0.lib
vtkImagingFourier-8.0.lib
vtkImagingGeneral-8.0.lib
vtkImagingHybrid-8.0.lib
vtkImagingMath-8.0.lib
vtkImagingMorphological-8.0.lib
vtkImagingSources-8.0.lib
vtkImagingStatistics-8.0.lib
vtkImagingStencil-8.0.lib
vtkInfovisCore-8.0.lib
vtkInfovisLayout-8.0.lib
vtkInteractionImage-8.0.lib
vtkInteractionStyle-8.0.lib
vtkInteractionWidgets-8.0.lib
vtkIOAMR-8.0.lib
vtkIOCore-8.0.lib
vtkIOEnSight-8.0.lib
vtkIOExodus-8.0.lib
vtkIOExport-8.0.lib
vtkIOExportOpenGL-8.0.lib
vtkIOGeometry-8.0.lib
vtkIOImage-8.0.lib
vtkIOImport-8.0.lib
vtkIOInfovis-8.0.lib
vtkIOLegacy-8.0.lib
vtkIOLSDyna-8.0.lib
vtkIOMINC-8.0.lib
vtkIOMovie-8.0.lib
vtkIONetCDF-8.0.lib
vtkIOParallel-8.0.lib
vtkIOParallelXML-8.0.lib
vtkIOPLY-8.0.lib
vtkIOSQL-8.0.lib
vtkIOTecplotTable-8.0.lib
vtkIOVideo-8.0.lib
vtkIOXML-8.0.lib
vtkIOXMLParser-8.0.lib
vtkjpeg-8.0.lib
vtkjsoncpp-8.0.lib
vtklibharu-8.0.lib
vtklibxml2-8.0.lib
vtklz4-8.0.lib
vtkmetaio-8.0.lib
vtkNetCDF-8.0.lib
vtknetcdf_c++.lib
vtkoggtheora-8.0.lib
vtkParallelCore-8.0.lib
vtkpng-8.0.lib
vtkproj4-8.0.lib
vtkRenderingAnnotation-8.0.lib
vtkRenderingContext2D-8.0.lib
vtkRenderingContextOpenGL-8.0.lib
vtkRenderingCore-8.0.lib
vtkRenderingFreeType-8.0.lib
vtkRenderingGL2PS-8.0.lib
vtkRenderingImage-8.0.lib
vtkRenderingLabel-8.0.lib
vtkRenderingLIC-8.0.lib
vtkRenderingLOD-8.0.lib
vtkRenderingOpenGL-8.0.lib
vtkRenderingVolume-8.0.lib
vtkRenderingVolumeOpenGL-8.0.lib
vtksqlite-8.0.lib
vtksys-8.0.lib
vtktiff-8.0.lib
vtkverdict-8.0.lib
vtkViewsContext2D-8.0.lib
vtkViewsCore-8.0.lib
vtkViewsInfovis-8.0.lib
vtkzlib-8.0.lib
flann.lib
flann_cpp.lib
flann_cpp_s.lib
flann_s.lib
qhullcpp_d.lib
qhullstatic.lib
qhullstatic_r.lib
qhull.lib
qhull_p.lib
qhull_r.lib
OpenNI2.lib
kernel32.lib
user32.lib
gdi32.lib
winspool.lib
shell32.lib
ole32.lib
oleaut32.lib
uuid.lib
comdlg32.lib
advapi32.lib
comctl32.lib
wsock32.lib
glu32.lib
opengl32.lib
ws2_32.lib
Psapi.lib

同样需要注意版本问题。

这样,我们的Debug模式和Release模式就全部配置完成了,根据自己的需要选择即可。为了减少其他工程配置的负担,可以将这些配置保存为属性表,方法可以自行搜索。

五.测试

测试代码:

#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 std::cout;void viewerOneOff(pcl::visualization::PCLVisualizer& viewer) {viewer.setBackgroundColor(1.0, 0.5, 1.0);   //设置背景颜色
}int main() {pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);char strfilepath[256] = "rabbit.pcd";if (-1 == pcl::io::loadPCDFile(strfilepath, *cloud)) {cout << "error input!" << endl;return -1;}cout << cloud->points.size() << endl;pcl::visualization::CloudViewer viewer("Cloud Viewer");     //创建viewer对象viewer.showCloud(cloud);viewer.runOnVisualizationThreadOnce(viewerOneOff);system("pause");return 0;
}

将代码放在主函数中:

将在百云度

链接:https://pan.baidu.com/s/1xdB_mI4iT7l-LQd8CA_48Q 
提取码:r0pv 
中的rabbit.pcd文件下载下来,放在与项目中的主.cpp同一位置的文件夹下

运行,效果如下:

六.问题解决

1.运行后可能会出现下面的问题:

严重性  代码  说明  项目  文件  行   禁止显示状态
错误  C4996   'std::fpos<_Mbstatet>::seekpos': warning STL4019: The member std::fpos::seekpos() is non-Standard, and is preserved only for compatibility with workarounds for old versions of Visual C++. It will be removed in a future release, and in this release always returns 0. Please use standards-conforming mechanisms to manipulate fpos, such as conversions to and from streamoff, or an integral type, instead. If you are receiving this message while compiling Boost.IOStreams, a fix has been submitted upstream to make Boost use standards-conforming mechanisms, as it does for other compilers. You can define _SILENCE_FPOS_SEEKPOS_DEPRECATION_WARNING to acknowledge that you have received this warning, or define _REMOVE_FPOS_SEEKPOS to remove std::fpos::seekpos entirely.  pcl_test3   c:\program files\pcl_1_8_1\3rdparty\boost\include\boost-1_64\boost\iostreams\positioning.hpp    96

解决方法:

打开项目属性页>C/C++>常规>SDL检查(设置为否)

2.可能会出现找不到pcl_common_debug.dll文件的问题;

解决方法:首先确定pdb包解压并且放到了主目录的bin下,然后将C:\Program Files\PCL_1_8_1\bin添加到环境变量的path路径中。重启电脑,让环境配置启用。

参考博客:

http://gyshgx868.github.io/2018/03/06/PointCloud/pcl-install/

https://blog.csdn.net/qing101hua/article/details/70739391

PCL安装与配置(Windows10+VS2017 )相关推荐

  1. win10环境下PCL安装和配置回顾(一)

    2020年博主有写过几篇关于PCL的博客,这边想先回顾下,再增加点新内容.之前写的博客专栏如下链接. https://blog.csdn.net/jiugeshao/category_11993239 ...

  2. 海康威视工业相机SDK二次开发环境配置—Windows10+VS2017

    参考链接: https://blog.csdn.net/motikesi/article/details/108287951 一.SDK下载地址: https://www.hikrobotics.co ...

  3. c++ amp vs2017 报错_opencv4教程-1 opencv的安装与调试Windows10+vs2017

    安装解压我就不必多说了. 将opencv解压到相应的文件目录下: 在vs2017创建一个空的项目. 可以设置成release或者debug模式,64位,具体随意,代码如下: ============= ...

  4. PCL安装和环境配置

    目录 1. VS2017下载安装 2. PCL下载安装 3. 环境配置 附上链接库列表 4. 测试 5.问题解决 1. VS2017下载安装 微软官网下载链接:https://visualstudio ...

  5. Windows10+VS2017下安装和 编译openssl库

    windows10+VS2017下安装和编译openssl库 环境 windows10,64位 openssl解压目录:E:\mylib\openssl-1.0.2l openssl安装目录:E:\m ...

  6. Windows10 JDK9安装及配置环境变量与Eclipse安装

    一 下载JDK9 http://www.oracle.com/technetwork/java/javase/downloads/jdk9-downloads-3848520.html 选择版本,系统 ...

  7. OpenCV3.4.1+vs2017安装及配置

    一.OpenCV3.4.1下载与安装 1.OpenCV3.4.1下载 可以去OpenCV官网上下载http://opencv.org/ 然后找到对应的系统环境就可以下载了,当然了官网上下载会很慢,推荐 ...

  8. mysql5.7.11解压版_Mysql5.7.11在windows10上的安装与配置(解压版)_MySQL

    第一步 my-default.ini 添加配置: #绑定IPv4和3306端 bind-address = 127.0.0.1 port = 3306 # 设置mysql的安装目 basedir= E ...

  9. Redis安装与配置( Windows10 )

    Redis安装与配置( Windows10 ) 2018-09-22 17:54:21 gcl_air 阅读数 13357更多 分类专栏: redis 版权声明:本文为博主原创文章,遵循 CC 4.0 ...

  10. mysql5.7.11解压版安装_Mysql5.7.11在windows10上的安装与配置(解压版)

    第一步 my-default.ini 添加配置: #绑定IPv4和3306端 bind-address = 127.0.0.1 port = 3306 # 设置mysql的安装目 basedir= E ...

最新文章

  1. BZOJ 3236[AHOI2013]作业
  2. NFC与RFID的原理及应用区别
  3. SAP Spartacus PageMetaResolver 的单元测试
  4. XAML Workflow Schema
  5. Getter DI是个好主意吗?
  6. 安装Debian-9(Stretch)服务器图文教程
  7. 【入门教程】无人机烧录过程
  8. linux下定时执行任务方法【转】
  9. java 自动下载自动搜索_360搜索彩蛋自动化开发实践
  10. iOS 对 HTTPS 证书链的验证
  11. 通过刷bios的方式在win8.1平板上启动windows phone模拟器
  12. 《从程序员到项目经理》学习笔记
  13. 微信支付:不支持虚拟货币交易 如发现违规行为将予以清退处理
  14. 玩手游神助攻:盘点那些具有游戏宏按键,可自定义按键一键多用的模拟器
  15. IntelliJ IDEA 添加对 Extjs6 支持
  16. 编程语言和开发环境的选择
  17. python打印小星星案例详解_音乐案例 《小星星》
  18. [java 新手练习1]5x5横排竖排方阵代码(java)
  19. scratch下实现子弹追踪特效
  20. {电脑救助站}常用知识3

热门文章

  1. Bart模型应用实例及解析(一)————基于波士顿房价数据集的回归模型
  2. Win7+U盘安装Ubuntu 双系统超级详细教程
  3. “第三届金融CIO班”开学典礼成功举行
  4. 完美世界CEO萧泓:年轻化战略大有可为
  5. Spring Cloud微服务:Loadbalancer 实战
  6. 高德地图标识大全_连地震都查得一清二楚!高德地图新功能体验
  7. Elasticsearch嵌套式对象Nested分析
  8. java中void是什么意思_JAVA里VOID是什么意思
  9. python下载需要花钱吗,python下载要钱多少钱
  10. 第一次学游泳技巧_第一次学习游泳