VS2019+PCL1.9.1配置

VS2017下载与安装

可以参考:

https://blog.csdn.net/weixin_41991128/article/details/83656543

https://blog.csdn.net/qq_33528803/article/details/97399915

本文在第二篇博客基础上,增加了报错修改,并对原文中最后一步版本设置会导致的问题进行修复。

PCL1.9.1下载与安装

1.下载

github有直接下载PCL1.9.1版本

链接: https://github.com/PointCloudLibrary/pcl/releases.

根据自己的编译器环境选择下载win64或者winX32的版本,例如博主下载的VS2017win64版本:下载
PCL-1.9.1-AllInOne-msvc2017-win64.exe
pcl-1.9.1-pdb-msvc2017-win64.zip
两个文件。

2.安装
安装步骤很简单,点击“PCL-1.9.1-AllInOne-msvc2017-win64.exe”进行安装:


这里建议选第二个:“Add PCL to the system PATH for all users”,它可以自动添加系统路径(不过我的失败了,说是什么路径名字太长)。

然后选择安装的文件夹,以及选择生成快捷方式。


这里选择第三方库,除非你清楚地知道自己需要什么库不需要什么库,不然就都选上。

安装到快结束的时候会弹出安装OpenNI的提示,建议安装到你自定义的第三方库的目录下(不是硬性要求安装目录,这样只是方便之后配置环境方便。在PCL 1.9.1\3rdParty下新建一个文件夹OpenNI2,安装到这个里面就行。如果安装失败或者直接装到了3rdParty,可安装完成后使用文件夹中的OpenNI-Windows-x64-2.2.msi重装);

å¨è¿éæå¥å¾çæè¿°

解压“pcl-1.9.0-pdb-msvc2017-win64.zip”,将解压得到的文件夹中的内容添加到你的PCL安装目录==…\PCL 1.9.0\bin==中。

PCL的安装结束。

下面开始进行VS2017配置PCL1.9.1

1.系统环境变量

计算机—>属性—>高级系统属性—>高级—>环境变量

éç½®ç¯å¢åé

找到path,双击。

path

添加红框里面的8个,找到你自己刚刚安装的目录,然后添加你自己对应的目录。

这一步完成之后需要将电脑注销一下才能生效(不用重启)

2.配置相关目录

打开VS2017新建一个空项目。

å¨è¿éæå¥å¾çæè¿°

输入名字,选择生成文件夹,然后选择“空项目”,直接确定就可以了。

å¨è¿éæå¥å¾çæè¿°

首先确保编译环境是X64,我这里选择的是Release版本。

这里在对应的属性管理器—>Release|X64中添加新的属性表“PCL1.9.1X64r”(名字取得自己看得懂就行,属性管理器窗口可通过“视图-->其他窗口-->属性管理器”打开)。

å¨è¿éæå¥å¾çæè¿°

通用属性—>VC++目录—>包含目录中添加7个目录:

C:\Program Files\PCL 1.9.1\3rdParty\OpenNI2\Include

C:\Program Files\PCL 1.9.1\3rdParty\VTK\include\vtk-8.1

C:\Program Files\PCL 1.9.1\3rdParty\Qhull\include

C:\Program Files\PCL 1.9.1\3rdParty\FLANN\include

C:\Program Files\PCL 1.9.1\3rdParty\Eigen\eigen3

C:\Program Files\PCL 1.9.1\3rdParty\Boost\include\boost-1_68

C:\Program Files\PCL 1.9.1\include\pcl-1.9

然后是添加lib目录,在通用属性—>VC++目录—>库目录中添加如下6个目录

C:\Program Files\PCL 1.9.1\3rdParty\VTK\lib

C:\Program Files\PCL 1.9.1\3rdParty\Qhull\lib

C:\Program Files\PCL 1.9.1\3rdParty\OpenNI2\Lib

C:\Program Files\PCL 1.9.1\3rdParty\FLANN\lib

C:\Program Files\PCL 1.9.1\3rdParty\Boost\lib

C:\Program Files\PCL 1.9.1\lib

在C/C++—>预处理器—>预处理器定义中添加:

_CRT_SECURE_NO_WARNINGS
_SCL_SECURE_NO_WARNINGS
_SILENCE_FPOS_SEEKPOS_DEPRECATION_WARNING

将C/C++—>所有选项—>SDL检查改为否。

最后,也是最麻烦的一个:在通用属性—>链接器—>输入—>附加的依赖项中添加对应的.“lib”文件,主要是添加PCL的“.lib”文件和第三方库中VTK的“.lib”文件。

注意VTK的版本,在你的路径:…PCL1.9.1\PCL 1.9.1\3rdParty\VTK\lib 中查看自己VTK的版本。

Release版本:注意VTK的版本
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
vtkalglib-8.1.lib
vtkChartsCore-8.1.lib
vtkCommonColor-8.1.lib
vtkCommonComputationalGeometry-8.1.lib
vtkCommonCore-8.1.lib
vtkCommonDataModel-8.1.lib
vtkCommonExecutionModel-8.1.lib
vtkCommonMath-8.1.lib
vtkCommonMisc-8.1.lib
vtkCommonSystem-8.1.lib
vtkCommonTransforms-8.1.lib
vtkDICOMParser-8.1.lib
vtkDomainsChemistry-8.1.lib
vtkexoIIc-8.1.lib
vtkexpat-8.1.lib
vtkFiltersAMR-8.1.lib
vtkFiltersCore-8.1.lib
vtkFiltersExtraction-8.1.lib
vtkFiltersFlowPaths-8.1.lib
vtkFiltersGeneral-8.1.lib
vtkFiltersGeneric-8.1.lib
vtkFiltersGeometry-8.1.lib
vtkFiltersHybrid-8.1.lib
vtkFiltersHyperTree-8.1.lib
vtkFiltersImaging-8.1.lib
vtkFiltersModeling-8.1.lib
vtkFiltersParallel-8.1.lib
vtkFiltersParallelImaging-8.1.lib
vtkFiltersPoints-8.1.lib
vtkFiltersProgrammable-8.1.lib
vtkFiltersSelection-8.1.lib
vtkFiltersSMP-8.1.lib
vtkFiltersSources-8.1.lib
vtkFiltersStatistics-8.1.lib
vtkFiltersTexture-8.1.lib
vtkFiltersTopology-8.1.lib
vtkFiltersVerdict-8.1.lib
vtkfreetype-8.1.lib
vtkGeovisCore-8.1.lib
vtkgl2ps-8.1.lib
vtkhdf5-8.1.lib
vtkhdf5_hl-8.1.lib
vtkImagingColor-8.1.lib
vtkImagingCore-8.1.lib
vtkImagingFourier-8.1.lib
vtkImagingGeneral-8.1.lib
vtkImagingHybrid-8.1.lib
vtkImagingMath-8.1.lib
vtkImagingMorphological-8.1.lib
vtkImagingSources-8.1.lib
vtkImagingStatistics-8.1.lib
vtkImagingStencil-8.1.lib
vtkInfovisCore-8.1.lib
vtkInfovisLayout-8.1.lib
vtkInteractionImage-8.1.lib
vtkInteractionStyle-8.1.lib
vtkInteractionWidgets-8.1.lib
vtkIOAMR-8.1.lib
vtkIOCore-8.1.lib
vtkIOEnSight-8.1.lib
vtkIOExodus-8.1.lib
vtkIOExport-8.1.lib
vtkIOExportOpenGL-8.1.lib
vtkIOGeometry-8.1.lib
vtkIOImage-8.1.lib
vtkIOImport-8.1.lib
vtkIOInfovis-8.1.lib
vtkIOLegacy-8.1.lib
vtkIOLSDyna-8.1.lib
vtkIOMINC-8.1.lib
vtkIOMovie-8.1.lib
vtkIONetCDF-8.1.lib
vtkIOParallel-8.1.lib
vtkIOParallelXML-8.1.lib
vtkIOPLY-8.1.lib
vtkIOSQL-8.1.lib
vtkIOTecplotTable-8.1.lib
vtkIOVideo-8.1.lib
vtkIOXML-8.1.lib
vtkIOXMLParser-8.1.lib
vtkjpeg-8.1.lib
vtkjsoncpp-8.1.lib
vtklibharu-8.1.lib
vtklibxml2-8.1.lib
vtklz4-8.1.lib
vtkmetaio-8.1.lib
vtkNetCDF-8.1.lib
vtknetcdfcpp-8.1.lib
vtkoggtheora-8.1.lib
vtkParallelCore-8.1.lib
vtkpng-8.1.lib
vtkproj4-8.1.lib
vtkRenderingAnnotation-8.1.lib
vtkRenderingContext2D-8.1.lib
vtkRenderingContextOpenGL-8.1.lib
vtkRenderingCore-8.1.lib
vtkRenderingFreeType-8.1.lib
vtkRenderingGL2PS-8.1.lib
vtkRenderingImage-8.1.lib
vtkRenderingLabel-8.1.lib
vtkRenderingLIC-8.1.lib
vtkRenderingLOD-8.1.lib
vtkRenderingOpenGL-8.1.lib
vtkRenderingVolume-8.1.lib
vtkRenderingVolumeOpenGL-8.1.lib
vtksqlite-8.1.lib
vtksys-8.1.lib
vtktiff-8.1.lib
vtkverdict-8.1.lib
vtkViewsContext2D-8.1.lib
vtkViewsCore-8.1.lib
vtkViewsInfovis-8.1.lib
vtkzlib-8.1.lib

3.测试安装是否成功

rabbit.pcd文件:链接:https://pan.baidu.com/s/1T2ZZqBDD7kyzLvug6gBVHA 密码:dl9n

下载之后将点云文件拷贝到项目文件夹

#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;
}
效果图:

 


4.可能出现的错误


error C4996:右键项目–>属性(注意不是刚刚新建的那个属性表PCL1.9.1X64r)–>C/C++ 将SDL检查设置为 否。参考:https://blog.csdn.net/oMoDao1/article/details/89210158

error C2116和C2733:参考:https://blog.csdn.net/qq_41017802/article/details/103482535


error LNK2038:release和debug版本设置有问题,注意lib那一步的引入。参考:https://www.cnblogs.com/lisuyun/p/6410393.html

vtk无法解析的外部符号:重新引入lib。参考:https://blog.csdn.net/qinlele1994/article/details/91794927

  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值