热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

PCL1.8.0+VS2013+Win10配置

文章目录说明PCL1.8.0VS2013Win10配置第一步:PCL的安装第二步:环境变量的配置第三步:新建一个x64的控制台项目第四步&

文章目录

    • 说明
    • PCL1.8.0+VS2013+Win10 配置
      • 第一步:PCL 的安装
      • 第二步:环境变量的配置
      • 第三步:新建一个 x64 的控制台项目
      • 第四步:包含目录、库目录、附加依赖项的配置
      • 第五步:项目环境目录配置
      • 第六步:测试是否配置成功
      • 第七步:导出配置
    • 常见问题汇总
    • 参考博客


说明




  • 欢迎进群探讨 PCL 的更多问题

QQ群号:190162198
QQ群名:PCL点云部落

在这里插入图片描述

PCL1.8.0+VS2013+Win10 配置



配置环境前需要准备的工具有:

  • PCL-1.8.0-AllInOne-msvc2013-win32 或者 PCL-1.8.0-AllInOne-msvc2013-win64
  • VS2013
  • Qt(可选)

注:本文是在 64 位操作系统下进行安装操作的!包括PCL的安装也是 64 位的!


注:以上软件均可在QQ群获取

下载完成后开始安装吧~~~

第一步:PCL 的安装



注意事项:

  • 安装位置 默认安装在C盘,修改位置到其他盘符,作者使用 D:\PCL1.8\ 进行安装
  • 中途弹出安装OpenNI的安装选项 安装到 D:\PCL1.8\PCL 1.8.0\3rdParty\OpenNI2 目录下
  • 直到安装完成 …

第二步:环境变量的配置



首先打开环境变量设置界面:此电脑->右键属性->高级系统变量->环境变量->系统变量:

这里写图片描述

该3项是在安装完成后自动生成的,同理:

这里写图片描述

该项也是自动生成的。我们需要做的是:选中系统变量中的Path,选择编辑,然后添加以下5条:

这里写图片描述

在这里直接给出,防止出现错误(依次添加):

%PCL_ROOT%\3rdParty\FLANN\bin
%PCL_ROOT%\3rdParty\VTK\bin
%OPENNI2_REDIST64%
%OPENNI2_LIB64%
%OPENNI2_INCLUDE64%

到此,环境变量的配置完成。

第三步:新建一个 x64 的控制台项目



首先,新建一个空项目:打开VS2013->文件>新建>项目

这里写图片描述

新建一个空 Win 32 项目:注意是Win 32 控制台项目

这里写图片描述

将项目属性切换为 64 位:项目右键->属性->配置管理器->下拉菜单选择新建

这里写图片描述

然后选择 x64 ,单击确定后,在配置管理器界面点击确定,退出配置管理器。

这里写图片描述

至此,完成 64 位平台的更改。

第四步:包含目录、库目录、附加依赖项的配置



首先,打开属性管理器:视图->*其他窗口->属性管理器

这里写图片描述

然后选择 Debug | x64 :右键->添加新项目属性表,命名为 PCL ,最终结果如黄色椭圆形所示。

这里写图片描述

包含目录的编辑:选择新建的PCL->右键属性->通用属性->VC++目录->包含目录,添加如下:

这里写图片描述

还是,为了方便,将包含目录添加项贴出:

D:\PCL1.8\PCL 1.8.0\include\pcl-1.8
D:\PCL1.8\PCL 1.8.0\3rdParty\Boost\include\boost-1_59
D:\PCL1.8\PCL 1.8.0\3rdParty\Qhull\include
D:\PCL1.8\PCL 1.8.0\3rdParty\FLANN\include
D:\PCL1.8\PCL 1.8.0\3rdParty\VTK\include\vtk-7.0
D:\PCL1.8\PCL 1.8.0\3rdParty\Eigen\eigen3

库目录的编辑:选择新建的PCL->右键属性->通用属性->VC++目录->库目录,添加如下:

这里写图片描述

库目录的添加项贴出:

D:\PCL1.8\PCL 1.8.0\3rdParty\VTK\lib
D:\PCL1.8\PCL 1.8.0\3rdParty\FLANN\lib
D:\PCL1.8\PCL 1.8.0\3rdParty\Qhull\lib
D:\PCL1.8\PCL 1.8.0\3rdParty\Boost\lib
D:\PCL1.8\PCL 1.8.0\lib

附加依赖项的编辑:选择新建的PCL->右键属性->通用属性->链接器->输入->附加依赖项,添加如下:

这里写图片描述

附加依赖项的添加项贴出(略多):

pcl_apps_debug.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_simulation_debug.lib
pcl_stereo_debug.lib
pcl_surface_debug.lib
pcl_tracking_debug.lib
pcl_visualization_debug.lib
libboost_atomic-vc120-mt-gd-1_59.lib
libboost_chrono-vc120-mt-gd-1_59.lib
libboost_container-vc120-mt-gd-1_59.lib
libboost_context-vc120-mt-gd-1_59.lib
libboost_coroutine-vc120-mt-gd-1_59.lib
libboost_date_time-vc120-mt-gd-1_59.lib
libboost_exception-vc120-mt-gd-1_59.lib
libboost_filesystem-vc120-mt-gd-1_59.lib
libboost_graph-vc120-mt-gd-1_59.lib
libboost_iostreams-vc120-mt-gd-1_59.lib
libboost_locale-vc120-mt-gd-1_59.lib
libboost_log-vc120-mt-gd-1_59.lib
libboost_log_setup-vc120-mt-gd-1_59.lib
libboost_math_c99-vc120-mt-gd-1_59.lib
libboost_math_c99f-vc120-mt-gd-1_59.lib
libboost_math_c99l-vc120-mt-gd-1_59.lib
libboost_math_tr1-vc120-mt-gd-1_59.lib
libboost_math_tr1f-vc120-mt-gd-1_59.lib
libboost_math_tr1l-vc120-mt-gd-1_59.lib
libboost_mpi-vc120-mt-gd-1_59.lib
libboost_prg_exec_monitor-vc120-mt-gd-1_59.lib
libboost_program_options-vc120-mt-gd-1_59.lib
libboost_random-vc120-mt-gd-1_59.lib
libboost_regex-vc120-mt-gd-1_59.lib
libboost_serialization-vc120-mt-gd-1_59.lib
libboost_signals-vc120-mt-gd-1_59.lib
libboost_system-vc120-mt-gd-1_59.lib
libboost_test_exec_monitor-vc120-mt-gd-1_59.lib
libboost_thread-vc120-mt-gd-1_59.lib
libboost_timer-vc120-mt-gd-1_59.lib
libboost_unit_test_framework-vc120-mt-gd-1_59.lib
libboost_wave-vc120-mt-gd-1_59.lib
libboost_wserialization-vc120-mt-gd-1_59.lib
flann-gd.lib
flann_cpp_s-gd.lib
flann_s-gd.lib
qhull-gd.lib
qhullcpp-gd.lib
qhullstatic-gd.lib
qhullstatic_r-gd.lib
qhull_p-gd.lib
qhull_r-gd.lib
vtkalglib-7.0-gd.lib
vtkChartsCore-7.0-gd.lib
vtkCommonColor-7.0-gd.lib
vtkCommonComputationalGeometry-7.0-gd.lib
vtkCommonCore-7.0-gd.lib
vtkCommonDataModel-7.0-gd.lib
vtkCommonExecutionModel-7.0-gd.lib
vtkCommonMath-7.0-gd.lib
vtkCommonMisc-7.0-gd.lib
vtkCommonSystem-7.0-gd.lib
vtkCommonTransforms-7.0-gd.lib
vtkDICOMParser-7.0-gd.lib
vtkDomainsChemistry-7.0-gd.lib
vtkDomainsChemistryOpenGL2-7.0-gd.lib
vtkexoIIc-7.0-gd.lib
vtkexpat-7.0-gd.lib
vtkFiltersAMR-7.0-gd.lib
vtkFiltersCore-7.0-gd.lib
vtkFiltersExtraction-7.0-gd.lib
vtkFiltersFlowPaths-7.0-gd.lib
vtkFiltersGeneral-7.0-gd.lib
vtkFiltersGeneric-7.0-gd.lib
vtkFiltersGeometry-7.0-gd.lib
vtkFiltersHybrid-7.0-gd.lib
vtkFiltersHyperTree-7.0-gd.lib
vtkFiltersImaging-7.0-gd.lib
vtkFiltersModeling-7.0-gd.lib
vtkFiltersParallel-7.0-gd.lib
vtkFiltersParallelImaging-7.0-gd.lib
vtkFiltersProgrammable-7.0-gd.lib
vtkFiltersSelection-7.0-gd.lib
vtkFiltersSMP-7.0-gd.lib
vtkFiltersSources-7.0-gd.lib
vtkFiltersStatistics-7.0-gd.lib
vtkFiltersTexture-7.0-gd.lib
vtkFiltersVerdict-7.0-gd.lib
vtkfreetype-7.0-gd.lib
vtkGeovisCore-7.0-gd.lib
vtkglew-7.0-gd.lib
vtkGUISupportQt-7.0-gd.lib
vtkGUISupportQtSQL-7.0-gd.lib
vtkhdf5-7.0-gd.lib
vtkhdf5_hl-7.0-gd.lib
vtkImagingColor-7.0-gd.lib
vtkImagingCore-7.0-gd.lib
vtkImagingFourier-7.0-gd.lib
vtkImagingGeneral-7.0-gd.lib
vtkImagingHybrid-7.0-gd.lib
vtkImagingMath-7.0-gd.lib
vtkImagingMorphological-7.0-gd.lib
vtkImagingSources-7.0-gd.lib
vtkImagingStatistics-7.0-gd.lib
vtkImagingStencil-7.0-gd.lib
vtkInfovisCore-7.0-gd.lib
vtkInfovisLayout-7.0-gd.lib
vtkInteractionImage-7.0-gd.lib
vtkInteractionStyle-7.0-gd.lib
vtkInteractionWidgets-7.0-gd.lib
vtkIOAMR-7.0-gd.lib
vtkIOCore-7.0-gd.lib
vtkIOEnSight-7.0-gd.lib
vtkIOExodus-7.0-gd.lib
vtkIOExport-7.0-gd.lib
vtkIOGeometry-7.0-gd.lib
vtkIOImage-7.0-gd.lib
vtkIOImport-7.0-gd.lib
vtkIOInfovis-7.0-gd.lib
vtkIOLegacy-7.0-gd.lib
vtkIOLSDyna-7.0-gd.lib
vtkIOMINC-7.0-gd.lib
vtkIOMovie-7.0-gd.lib
vtkIONetCDF-7.0-gd.lib
vtkIOParallel-7.0-gd.lib
vtkIOParallelXML-7.0-gd.lib
vtkIOPLY-7.0-gd.lib
vtkIOSQL-7.0-gd.lib
vtkIOVideo-7.0-gd.lib
vtkIOXML-7.0-gd.lib
vtkIOXMLParser-7.0-gd.lib
vtkjpeg-7.0-gd.lib
vtkjsoncpp-7.0-gd.lib
vtklibxml2-7.0-gd.lib
vtkmetaio-7.0-gd.lib
vtkNetCDF-7.0-gd.lib
vtkNetCDF_cxx-7.0-gd.lib
vtkoggtheora-7.0-gd.lib
vtkParallelCore-7.0-gd.lib
vtkpng-7.0-gd.lib
vtkproj4-7.0-gd.lib
vtkRenderingAnnotation-7.0-gd.lib
vtkRenderingContext2D-7.0-gd.lib
vtkRenderingContextOpenGL2-7.0-gd.lib
vtkRenderingCore-7.0-gd.lib
vtkRenderingFreeType-7.0-gd.lib
vtkRenderingImage-7.0-gd.lib
vtkRenderingLabel-7.0-gd.lib
vtkRenderingLOD-7.0-gd.lib
vtkRenderingOpenGL2-7.0-gd.lib
vtkRenderingQt-7.0-gd.lib
vtkRenderingVolume-7.0-gd.lib
vtkRenderingVolumeOpenGL2-7.0-gd.lib
vtksqlite-7.0-gd.lib
vtksys-7.0-gd.lib
vtktiff-7.0-gd.lib
vtkverdict-7.0-gd.lib
vtkViewsContext2D-7.0-gd.lib
vtkViewsCore-7.0-gd.lib
vtkViewsInfovis-7.0-gd.lib
vtkViewsQt-7.0-gd.lib
vtkzlib-7.0-gd.lib


注:以上附加依赖项只针对 PCL1.8.0 !

这里写图片描述

第五步:项目环境目录配置



项目->右键->属性->配置属性->调试->环境:

贴出环境目录配置:

PATH=$(PCL_ROOT)\bin;$(PCL_ROOT)\3rdParty\FLANN\bin;$(PCL_ROOT)\3rdParty\VTK\bin;$(PCL_ROOT)\Qhull\bin;$(PCL_ROOT)\3rdParty\OpenNI2\Tools;$(PATH)

第六步:测试是否配置成功



新建一个 main.cpp ,输入以下代码:

#include
#include
#include
#include int user_data;void viewerOneOff(pcl::visualization::PCLVisualizer& viewer)
{viewer.setBackgroundColor(1.0, 0.5, 1.0);pcl::PointXYZ o;o.x &#61; 1.0;o.y &#61; 0;o.z &#61; 0;viewer.addSphere(o, 0.25, "sphere", 0);std::cout << "i only run once" << std::endl;}void viewerPsycho(pcl::visualization::PCLVisualizer& viewer)
{static unsigned count &#61; 0;std::stringstream ss;ss << "Once per viewer loop: " << count&#43;&#43;;viewer.removeShape("text", 0);viewer.addText(ss.str(), 200, 300, "text", 0);//FIXME: possible race condition here:user_data&#43;&#43;;
}int main()
{pcl::PointCloud<pcl::PointXYZRGBA>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZRGBA>);pcl::io::loadPCDFile("my_point_cloud.pcd", *cloud);pcl::visualization::CloudViewer viewer("Cloud Viewer");//blocks until the cloud is actually renderedviewer.showCloud(cloud);//use the following functions to get access to the underlying more advanced/powerful//PCLVisualizer//This will only get called onceviewer.runOnVisualizationThreadOnce(viewerOneOff);//This will get called once per visualization iterationviewer.runOnVisualizationThread(viewerPsycho);while (!viewer.wasStopped()){//you can also do cool processing here//FIXME: Note that this is running in a separate thread from viewerPsycho//and you should guard against race conditions yourself...user_data&#43;&#43;;}return 0;
}

Ctrl &#43; F5 进行调试&#xff0c;若出现如下界面&#xff0c;则表示配置成功&#xff0c;其中&#xff1a;通过鼠标移动可以调整圆球方位&#xff0c;滚轮可以进行放大缩小操作

这里写图片描述

第七步&#xff1a;导出配置



如果测试成功&#xff0c;那么就恭喜了~~~然后将我们配置的 PCL.props 上右键&#xff0c;保存PCL&#xff0c;将其导出到本地&#xff0c;以后在做相关工程时&#xff0c;直接在 Debug | x64 下将 PCL.props 添加进来即可。

至此&#xff0c;配置完成~~~

个人心得体会&#xff1a;PCL 程序还是很耗CPU的&#xff0c;博主用的 Intel i7-7700 CPU&#xff0c;8G 内存&#xff0c;运行该程序时&#xff0c;CPU 占到40%&#xff0c;CPU 温度 50℃&#xff0c;内存55%&#xff0c;清大家注意&#xff0c;配置一款强悍的独立显卡还是必要的&#xff01;


常见问题汇总




问题&#xff11;&#xff1a;VS 安装失败&#xff1f;
方案一&#xff1a;之前是否安装过其他VS版本&#xff1f;如果是&#xff0c;清先卸载其他版本&#xff0c;重新安装
方案二&#xff1a;其他未知原因&#xff1f;清重装系统&#xff08;哈哈&#xff09;
问题&#xff12;&#xff1a;PCL 安装失败&#xff1f;
方案&#xff1a;这个就很尴尬了&#xff0c;解决方法&#xff1a;未知。。。
问题&#xff13;&#xff1a;提示缺少 pcl_common_debug.dll、pcl_io_debug.dll、pcl_visualization_debug.dll、vtkCommonCore-7.0-gd.dll&#xff1f;
方案一&#xff1a;重启VS
方案二&#xff1a;重启电脑
问题4&#xff1a;其他


参考博客




  1. Summit_Yue&#xff1a;Windows10下VS2013&#43;PCL1.8环境配置

  2. lvei_jenny&#xff1a;vs &#43;pcl 配置问题

  3. cc_sunny&#xff1a;关于PCL的那些事——环境搭配(PCL1.8 64bitWIN8.1 VS2013)

  4. ideallic&#xff1a;PCL1.8.0&#43;VS2013配置教程


推荐阅读
  • 本文介绍了解决二叉树层序创建问题的方法。通过使用队列结构体和二叉树结构体,实现了入队和出队操作,并提供了判断队列是否为空的函数。详细介绍了解决该问题的步骤和流程。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 本文介绍了C++中省略号类型和参数个数不确定函数参数的使用方法,并提供了一个范例。通过宏定义的方式,可以方便地处理不定参数的情况。文章中给出了具体的代码实现,并对代码进行了解释和说明。这对于需要处理不定参数的情况的程序员来说,是一个很有用的参考资料。 ... [详细]
  • 本文介绍了一种划分和计数油田地块的方法。根据给定的条件,通过遍历和DFS算法,将符合条件的地块标记为不符合条件的地块,并进行计数。同时,还介绍了如何判断点是否在给定范围内的方法。 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • Linux环境变量函数getenv、putenv、setenv和unsetenv详解
    本文详细解释了Linux中的环境变量函数getenv、putenv、setenv和unsetenv的用法和功能。通过使用这些函数,可以获取、设置和删除环境变量的值。同时给出了相应的函数原型、参数说明和返回值。通过示例代码演示了如何使用getenv函数获取环境变量的值,并打印出来。 ... [详细]
  • 本文介绍了PE文件结构中的导出表的解析方法,包括获取区段头表、遍历查找所在的区段等步骤。通过该方法可以准确地解析PE文件中的导出表信息。 ... [详细]
  • 本文介绍了一个题目的解法,通过二分答案来解决问题,但困难在于如何进行检查。文章提供了一种逃逸方式,通过移动最慢的宿管来锁门时跑到更居中的位置,从而使所有合格的寝室都居中。文章还提到可以分开判断两边的情况,并使用前缀和的方式来求出在任意时刻能够到达宿管即将锁门的寝室的人数。最后,文章提到可以改成O(n)的直接枚举来解决问题。 ... [详细]
  • C++字符字符串处理及字符集编码方案
    本文介绍了C++中字符字符串处理的问题,并详细解释了字符集编码方案,包括UNICODE、Windows apps采用的UTF-16编码、ASCII、SBCS和DBCS编码方案。同时说明了ANSI C标准和Windows中的字符/字符串数据类型实现。文章还提到了在编译时需要定义UNICODE宏以支持unicode编码,否则将使用windows code page编译。最后,给出了相关的头文件和数据类型定义。 ... [详细]
  • 开发笔记:实验7的文件读写操作
    本文介绍了使用C++的ofstream和ifstream类进行文件读写操作的方法,包括创建文件、写入文件和读取文件的过程。同时还介绍了如何判断文件是否成功打开和关闭文件的方法。通过本文的学习,读者可以了解如何在C++中进行文件读写操作。 ... [详细]
  • 本文介绍了深入浅出Linux设备驱动编程的重要性,以及两种加载和删除Linux内核模块的方法。通过一个内核模块的例子,展示了模块的编译和加载过程,并讨论了模块对内核大小的控制。深入理解Linux设备驱动编程对于开发者来说非常重要。 ... [详细]
  • 李逍遥寻找仙药的迷阵之旅
    本文讲述了少年李逍遥为了救治婶婶的病情,前往仙灵岛寻找仙药的故事。他需要穿越一个由M×N个方格组成的迷阵,有些方格内有怪物,有些方格是安全的。李逍遥需要避开有怪物的方格,并经过最少的方格,找到仙药。在寻找的过程中,他还会遇到神秘人物。本文提供了一个迷阵样例及李逍遥找到仙药的路线。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • 本文讨论了使用差分约束系统求解House Man跳跃问题的思路与方法。给定一组不同高度,要求从最低点跳跃到最高点,每次跳跃的距离不超过D,并且不能改变给定的顺序。通过建立差分约束系统,将问题转化为图的建立和查询距离的问题。文章详细介绍了建立约束条件的方法,并使用SPFA算法判环并输出结果。同时还讨论了建边方向和跳跃顺序的关系。 ... [详细]
author-avatar
王聪明2011
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有