VS2017+PCL1.8.1配置记录
1:先下载相关软件
链接:https://pan.baidu.com/s/1WfLsKe5zrWrwfxzw4X5RzA
提取码:1234
2:软件安装部分参考链接,后续步骤本文单独写了,因为一开始全程按照此链接配置有问题。(本文的安装目录设置的是E:\PCL)
PCL库安装 和 VS2017环境变量配置_童话——博客-CSDN博客_pcl库安装
3:配置环境变量

4:配置VS2017(给上面链接补充)
在项目的属性设置里加上这几句。
_CRT_SECURE_NO_WARNINGS
_SCL_SECURE_NO_WARNINGS
_SILENCE_FPOS_SEEKPOS_DEPRECATION_WARNING

5:VC++目录-->包含目录,添加如下内容:

6:VC++目录-->库目录,添加如下内容:

7:链接器-->输入-->附加依赖项,添加以下内容(我用的是Debug模式)
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
这里要重点提示:提取文件夹中.lib文件名总是会出现错误,下面是自己动手丰衣足食型:
例:提取D:\PCL 1.8.1\3rdParty\VTK\lib下的所有静态链接库文件名并存储至文本.txt,方法如下:
1、win+r
2、输入:cmd回车
3、输入:cd /d D:\PCL 1.8.1\3rdParty\VTK\lib 回车
4、输入:dir /b *.lib *>0.txt 回车
注释:个人测试的时候这个生成的txt文件里有一两行不是.lib信息而是啥0.txt和cmake,要把删除掉。不然编译会出错。
8:代码测试(测试的时候自己改下点云文件路径就好,点云文件在一开的安装包文件夹里就带了)
#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 main()
{
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);
char strfilepath[256] = "E:\\rabbit.pcd";
if (-1 == pcl::io::loadPCDFile(strfilepath, *cloud)) //打开点云文件
{
std::cout << "error input!" << std::endl;
return -1;
}
std::cout << cloud->points.size() << std::endl;
pcl::visualization::CloudViewer viewer("Cloud Viewer"); //创建viewer对象
viewer.showCloud(cloud);
system("pause");
return 0;
}
9:运行结果图

-------------------------------------------------------------------------------------------------分割线--------------------------------------------------------------------------------------------------------------------------------------------------------
附1:其他安装教程参考链接
PCL库安装 和 VS2017环境变量配置_童话——博客-CSDN博客_pcl库安装
附2:vs在新建项目的时候,有时候包含目录和库目录还有连接器里有之前设置的配置文件(我的是opencv配置文件),编译的时候会提示找不到某文件,这时候就要删除这些多余的配置文件。
方法:试图-其他窗口-属性管理器,点进去选择框出的这一个。然后会出来一个和前面配置窗口界面一样的窗口,去对应的位置移除掉就可以。比如我发现库目录下有多余的继承文件信息,那么就去对应位置移除。

如下图,当让我这里移除过了,所以一片空白。

附3:VS2017中PCL项目完整代码打包
链接:https://pan.baidu.com/s/1klk9RZgIwB0mMZTexi-rQQ
提取码:1234

浙公网安备 33010602011771号