整吐了,慢慢来慢慢来。什么时候才能进入懒人一键安装(一键被淘汰)的时代

还看到一个教程:​​​​​​https://github.com/PointCloudLibrary/pcl/issues/4462

如果之后换电脑可能会试试CMake的方法?就目前来说我只想把这烂摊子解决了

安装PCL

前往:https://github.com/PointCloudLibrary/pcl/releases

下载All In One版本(1.10.0)。同时下载对应的pdb压缩包。当然也可以自己下载Source code源码自己编译,但用不惯linux,就直接懒人一键吧。

双击exe安装,路径,驱动,ok

弹出path too long installer unable to modify path,然后安装就结束了。

去环境变量里看一下,系统变量里只添加了PCL_ROOT,路径是前面自定义的PCL安装路径。

打开Path,发现里面并没有PCL的相关环境变量。添加以下5项:

%PCL_ROOT%\bin
%PCL_ROOT%\3rdParty\FLANN\bin
%PCL_ROOT%\3rdParty\VTK\bin
%PCL_ROOT%\3rdParty\Qhull\bin
%PCL_ROOT%\3rdParty\OpenNI2\Tools

后来又因为各种原因修改了环境变量:

1.这5项都可以在PCL路径下找到,可以去PCL目录下对照着检查一下,照着一篇博客配置的结果不对,发现是Qhull在3rdParty目录下。不知道是那个博主写错了还是后来版本更新修改了位置。

还有OpenNI2,我之后在添加lib的时候发现,...\3rdParty\OpenNI2目录里只有一个安装程序,然后我搜索了一下。找到OpenNI2的安装目录在C盘。所以上面的最后一条环境变量需要修改:

C:\Program Files\OpenNI2\Tools

2.见后面dll文件找不到的问题,我将%PCL_ROOT%替换为了绝对路径。

在VS2017中配置PCL

项目->属性

1.C/C++->常规->附加包含目录,添加7项

供复制:(这是后来又一次装PCL,所以版本不一样)

D:\PCL\PCL 1.12.1\3rdParty\Eigen\eigen3
D:\PCL\PCL 1.12.1\3rdParty\VTK\include\vtk-9.1
D:\PCL\PCL 1.12.1\3rdParty\Qhull\include
D:\PCL\PCL 1.12.1\3rdParty\FLANN\include
D:\PCL\PCL 1.12.1\include\pcl-1.12
D:\PCL\PCL 1.12.1\3rdParty\Boost\include\boost-1_78
C:\Program Files\OpenNI2\Include

2.链接器->常规->附加库目录,添加7项

供复制:

D:\PCL\PCL 1.12.1\3rdParty\Qhull\lib
D:\PCL\PCL 1.12.1\3rdParty\VTK\lib
D:\PCL\PCL 1.12.1\3rdParty\FLANN\lib
D:\PCL\PCL 1.12.1\3rdParty\Boost\lib
D:\PCL\PCL 1.12.1\lib
C:\Program Files\OpenNI2\Lib

3.链接器->输入,附加依赖项,这里要添加的东西就很多了,建议参考:VS中PCL库附加依赖项配置 - life_limbo - 博客园,利用bat脚本来生成包含文件名的txt,方便复制。要提一句,在pcl的lib下,因为我的文件和参考的博客里的文件是不同的,参考博客里的文件名末尾是debug和release,而我的debug版本是末尾为d,release版本末尾无d。所以要修改bat脚本的内容,当然很简单,改一下匹配就行了。

与链接中的版本不同,我安装的pcl对应文件后缀改变了

写了个python来实现之前同样的功能,一次性全部搞定!

import osdef lib_to_txt(save_root_path, files_from, arg_debug_suffix, arg_release_suffix):files_debug = open(os.path.join(save_root_path, "debug.txt"), "a")files_release = open(os.path.join(save_root_path, "release.txt"), "a")files_all = open(os.path.join(save_root_path, "all.txt"), "a")files = os.listdir(files_from)for file in files:if file[-4:] == ".lib":if file[-len(arg_debug_suffix):] == arg_debug_suffix:files_debug.write(file + "\n")files_all.write(file + "\n")else:if file[-len(arg_release_suffix):] == arg_release_suffix:files_release.write(file + "\n")files_all.write(file + "\n")files_debug.close()files_release.close()if __name__ == '__main__':save_txt_to = "D:/PCL/"  # save txt to# need check and changeinput = [{"lib_path": r"D:\PCL\PCL 1.12.1\lib", "debug_suffix": "d.lib", "release_suffix": ".lib"},{"lib_path": r"D:\PCL\PCL 1.12.1\3rdParty/Boost/lib", "debug_suffix": "-gd-x64-1_78.lib", "release_suffix": "-x64-1_78.lib"},{"lib_path": r"D:\PCL\PCL 1.12.1\3rdParty\VTK\lib", "debug_suffix": "d.lib", "release_suffix": ".lib"},{"lib_path": r"C:\Program Files\OpenNI2\Lib", "debug_suffix": "d.lib", "release_suffix": ".lib"},{"lib_path": r"D:\PCL\PCL 1.12.1\3rdParty\FLANN\lib", "debug_suffix": "-gd.lib", "release_suffix": ".lib"},{"lib_path": r"D:\PCL\PCL 1.12.1\3rdParty\Qhull\lib", "debug_suffix": "d.lib", "release_suffix": ".lib"}]for dict in input:print(f'{dict["lib_path"]}, {dict["debug_suffix"]}, {dict["release_suffix"]}')lib_to_txt(save_txt_to, dict["lib_path"], dict["debug_suffix"], dict["release_suffix"])

%PCL_ROOT%\lib

文件夹都需要根据文件夹中的内容修改匹配后缀

3rdParty/Boost/lib
3rdParty\VTK\lib
OpenNI2\Lib
3rdParty\FLANN\lib
3rdParty\Qhull\lib

(不建议直接复制)列一下我添加的debug依赖项:

pcl_commond.lib
pcl_featuresd.lib
pcl_filtersd.lib
pcl_iod.lib
pcl_io_plyd.lib
pcl_kdtreed.lib
pcl_keypointsd.lib
pcl_mld.lib
pcl_octreed.lib
pcl_outofcored.lib
pcl_peopled.lib
pcl_recognitiond.lib
pcl_registrationd.lib
pcl_sample_consensusd.lib
pcl_searchd.lib
pcl_segmentationd.lib
pcl_stereod.lib
pcl_surfaced.lib
pcl_trackingd.lib
pcl_visualizationd.lib
libboost_atomic-vc141-mt-gd-x64-1_72.lib
libboost_chrono-vc141-mt-gd-x64-1_72.lib
libboost_container-vc141-mt-gd-x64-1_72.lib
libboost_context-vc141-mt-gd-x64-1_72.lib
libboost_contract-vc141-mt-gd-x64-1_72.lib
libboost_coroutine-vc141-mt-gd-x64-1_72.lib
libboost_date_time-vc141-mt-gd-x64-1_72.lib
libboost_exception-vc141-mt-gd-x64-1_72.lib
libboost_fiber-vc141-mt-gd-x64-1_72.lib
libboost_filesystem-vc141-mt-gd-x64-1_72.lib
libboost_graph-vc141-mt-gd-x64-1_72.lib
libboost_iostreams-vc141-mt-gd-x64-1_72.lib
libboost_locale-vc141-mt-gd-x64-1_72.lib
libboost_log-vc141-mt-gd-x64-1_72.lib
libboost_log_setup-vc141-mt-gd-x64-1_72.lib
libboost_math_c99-vc141-mt-gd-x64-1_72.lib
libboost_math_c99f-vc141-mt-gd-x64-1_72.lib
libboost_math_c99l-vc141-mt-gd-x64-1_72.lib
libboost_math_tr1-vc141-mt-gd-x64-1_72.lib
libboost_math_tr1f-vc141-mt-gd-x64-1_72.lib
libboost_math_tr1l-vc141-mt-gd-x64-1_72.lib
libboost_numpy37-vc141-mt-gd-x64-1_72.lib
libboost_prg_exec_monitor-vc141-mt-gd-x64-1_72.lib
libboost_program_options-vc141-mt-gd-x64-1_72.lib
libboost_python37-vc141-mt-gd-x64-1_72.lib
libboost_random-vc141-mt-gd-x64-1_72.lib
libboost_regex-vc141-mt-gd-x64-1_72.lib
libboost_serialization-vc141-mt-gd-x64-1_72.lib
libboost_stacktrace_noop-vc141-mt-gd-x64-1_72.lib
libboost_stacktrace_windbg-vc141-mt-gd-x64-1_72.lib
libboost_stacktrace_windbg_cached-vc141-mt-gd-x64-1_72.lib
libboost_system-vc141-mt-gd-x64-1_72.lib
libboost_test_exec_monitor-vc141-mt-gd-x64-1_72.lib
libboost_thread-vc141-mt-gd-x64-1_72.lib
libboost_timer-vc141-mt-gd-x64-1_72.lib
libboost_type_erasure-vc141-mt-gd-x64-1_72.lib
libboost_unit_test_framework-vc141-mt-gd-x64-1_72.lib
libboost_wave-vc141-mt-gd-x64-1_72.lib
libboost_wserialization-vc141-mt-gd-x64-1_72.lib
OpenNI2.lib
flann-gd.lib
flann_cpp-gd.lib
flann_cpp_s-gd.lib
flann_s-gd.lib
qhullcpp_d.lib
qhullstatic_d.lib
qhullstatic_r_d.lib
qhull_d.lib
qhull_p_d.lib
qhull_r_d.lib
vtkChartsCore-8.2-gd.lib
vtkCommonColor-8.2-gd.lib
vtkCommonComputationalGeometry-8.2-gd.lib
vtkCommonCore-8.2-gd.lib
vtkCommonDataModel-8.2-gd.lib
vtkCommonExecutionModel-8.2-gd.lib
vtkCommonMath-8.2-gd.lib
vtkCommonMisc-8.2-gd.lib
vtkCommonSystem-8.2-gd.lib
vtkCommonTransforms-8.2-gd.lib
vtkDICOMParser-8.2-gd.lib
vtkDomainsChemistry-8.2-gd.lib
vtkDomainsChemistryOpenGL2-8.2-gd.lib
vtkdoubleconversion-8.2-gd.lib
vtkexodusII-8.2-gd.lib
vtkexpat-8.2-gd.lib
vtkFiltersAMR-8.2-gd.lib
vtkFiltersCore-8.2-gd.lib
vtkFiltersExtraction-8.2-gd.lib
vtkFiltersFlowPaths-8.2-gd.lib
vtkFiltersGeneral-8.2-gd.lib
vtkFiltersGeneric-8.2-gd.lib
vtkFiltersGeometry-8.2-gd.lib
vtkFiltersHybrid-8.2-gd.lib
vtkFiltersHyperTree-8.2-gd.lib
vtkFiltersImaging-8.2-gd.lib
vtkFiltersModeling-8.2-gd.lib
vtkFiltersParallel-8.2-gd.lib
vtkFiltersParallelImaging-8.2-gd.lib
vtkFiltersPoints-8.2-gd.lib
vtkFiltersProgrammable-8.2-gd.lib
vtkFiltersSelection-8.2-gd.lib
vtkFiltersSMP-8.2-gd.lib
vtkFiltersSources-8.2-gd.lib
vtkFiltersStatistics-8.2-gd.lib
vtkFiltersTexture-8.2-gd.lib
vtkFiltersTopology-8.2-gd.lib
vtkFiltersVerdict-8.2-gd.lib
vtkfreetype-8.2-gd.lib
vtkGeovisCore-8.2-gd.lib
vtkgl2ps-8.2-gd.lib
vtkglew-8.2-gd.lib
vtkGUISupportMFC-8.2-gd.lib
vtkhdf5-8.2-gd.lib
vtkhdf5_hl-8.2-gd.lib
vtkImagingColor-8.2-gd.lib
vtkImagingCore-8.2-gd.lib
vtkImagingFourier-8.2-gd.lib
vtkImagingGeneral-8.2-gd.lib
vtkImagingHybrid-8.2-gd.lib
vtkImagingMath-8.2-gd.lib
vtkImagingMorphological-8.2-gd.lib
vtkImagingSources-8.2-gd.lib
vtkImagingStatistics-8.2-gd.lib
vtkImagingStencil-8.2-gd.lib
vtkInfovisCore-8.2-gd.lib
vtkInfovisLayout-8.2-gd.lib
vtkInteractionImage-8.2-gd.lib
vtkInteractionStyle-8.2-gd.lib
vtkInteractionWidgets-8.2-gd.lib
vtkIOAMR-8.2-gd.lib
vtkIOAsynchronous-8.2-gd.lib
vtkIOCityGML-8.2-gd.lib
vtkIOCore-8.2-gd.lib
vtkIOEnSight-8.2-gd.lib
vtkIOExodus-8.2-gd.lib
vtkIOExport-8.2-gd.lib
vtkIOExportOpenGL2-8.2-gd.lib
vtkIOExportPDF-8.2-gd.lib
vtkIOGeometry-8.2-gd.lib
vtkIOImage-8.2-gd.lib
vtkIOImport-8.2-gd.lib
vtkIOInfovis-8.2-gd.lib
vtkIOLegacy-8.2-gd.lib
vtkIOLSDyna-8.2-gd.lib
vtkIOMINC-8.2-gd.lib
vtkIOMovie-8.2-gd.lib
vtkIONetCDF-8.2-gd.lib
vtkIOParallel-8.2-gd.lib
vtkIOParallelXML-8.2-gd.lib
vtkIOPLY-8.2-gd.lib
vtkIOSegY-8.2-gd.lib
vtkIOSQL-8.2-gd.lib
vtkIOTecplotTable-8.2-gd.lib
vtkIOVeraOut-8.2-gd.lib
vtkIOVideo-8.2-gd.lib
vtkIOXML-8.2-gd.lib
vtkIOXMLParser-8.2-gd.lib
vtkjpeg-8.2-gd.lib
vtkjsoncpp-8.2-gd.lib
vtklibharu-8.2-gd.lib
vtklibxml2-8.2-gd.lib
vtklz4-8.2-gd.lib
vtklzma-8.2-gd.lib
vtkmetaio-8.2-gd.lib
vtkNetCDF-8.2-gd.lib
vtkogg-8.2-gd.lib
vtkParallelCore-8.2-gd.lib
vtkpng-8.2-gd.lib
vtkproj-8.2-gd.lib
vtkpugixml-8.2-gd.lib
vtkRenderingAnnotation-8.2-gd.lib
vtkRenderingContext2D-8.2-gd.lib
vtkRenderingContextOpenGL2-8.2-gd.lib
vtkRenderingCore-8.2-gd.lib
vtkRenderingExternal-8.2-gd.lib
vtkRenderingFreeType-8.2-gd.lib
vtkRenderingGL2PSOpenGL2-8.2-gd.lib
vtkRenderingImage-8.2-gd.lib
vtkRenderingLabel-8.2-gd.lib
vtkRenderingLOD-8.2-gd.lib
vtkRenderingOpenGL2-8.2-gd.lib
vtkRenderingVolume-8.2-gd.lib
vtkRenderingVolumeOpenGL2-8.2-gd.lib
vtksqlite-8.2-gd.lib
vtksys-8.2-gd.lib
vtktheora-8.2-gd.lib
vtktiff-8.2-gd.lib
vtkverdict-8.2-gd.lib
vtkViewsContext2D-8.2-gd.lib
vtkViewsCore-8.2-gd.lib
vtkViewsInfovis-8.2-gd.lib
vtkzlib-8.2-gd.lib

运行demo时遇到的错误

LINK : fatal error LNK1104: 无法打开文件“libboost_filesystem-vc141-mt-gd-x64-1_72.lib”

LINK : fatal error LNK1104: 无法打开文件“libboost_filesystem-vc141-mt-sgd-x64-1_72.lib”

LINK : fatal error LNK1104: 无法打开文件“libboost_filesystem-vc141-mt-sgd-x64-1_72.lib”_winka9587的博客-CSDN博客

由于找不到vcruntime140_1d.dll,无法继续执行代码

这个报错网上很常见了,一搜一大把,只要去下一个vcruntime140_1d.dll然后放到C:\Windows\System32(64位)

找不到pcl_iod.dll

找不到pcl_commond.dll

去pcl-版本/bin目录下,能够找到这两个dll文件,修改了一下环境变量,把里面的%PCL_ROOT%换成了绝对路径。

整个demo测试

参考 PCL demo运行_tellw0.0的博客-CSDN博客

如果报错_open不安全

C/C++-预处理器-预处理器定义:_CRT_SECURE_NO_WARNINGS

【踩坑记录】Win10+VS2017安装配置PCL相关推荐

  1. AI Earth挑战赛docker踩坑记录 WIN10+PyTorch

    文章目录 0.docker环境说明 1.数据准备 2.py文件 3.requirements文本文件 4.shell文件 5.dockerfile文件 6.Powershell 7.提交结果 0.do ...

  2. layaari2-cmd 踩坑记录,解决安装失败问题

    起因:最近有个laya项目搞一下,挺大的项目,本着省心省力的原则,用laya编辑器的编译工具尝试编译了一下,好家伙用了30分钟.这就没办法干活了.只能安装layaari2-cmd了. 以前安装过一次, ...

  3. alpine初始化配置和踩坑记录

    alpine初始化配置和踩坑记录 目录 alpine初始化配置和踩坑记录 开启root登录SSH 官方配置工具 修改DNS和apk源 设置时区 解决console字体太小并添加中文字体 参考文献 开启 ...

  4. Ubuntu20.0编译LineageOs14刷入小米8Lite(青春版)流程与踩坑记录

    本文全是个人经历与踩坑记录,不同机型配置可能不一样 全文踩坑内容错误加粗 编写时间:2022.5.24-14:53 机型配置: 虚拟机 4核心 每核心2线程 手机 小米8Lite 设备代号:plati ...

  5. Python打包工具Pyintealler打包py文件为windows exe文件过程及踩坑记录+实战例子

    Python打包工具Pyintealler打包py文件为windows exe文件过程及踩坑记录+实战例子 目录 Python打包工具Pyintealler打包py文件为windows exe文件过程 ...

  6. openmeetings6.10安装配置 踩坑记录

    2021SC@SDUSC 本文采用的是下载源码并利用idea安装依赖.进行配置的方法 openmeetings6.10源码下载地址: Github apache/openmeetings 官方源码运行 ...

  7. Detectron2 win10踩坑记录

    Detectron2 win10踩坑记录 安装CUDA clone到本地 修改cocoeval.cpp第483行(不同版本行数不一样) 创建虚拟环境 安装pycocotools 安装VS2019或者生 ...

  8. 博途v17与winCC安装流程与踩坑记录

    博途v17与winCC7.5安装教程与踩坑记录 安装教程 博途安装流程 第一步 注册表删除 第二步 启用.NET Framework服务 第三步 正式安装 winCC安装流程 博途v17与winCC安 ...

  9. 为Jupyter notebook配置R kernel过程及踩坑记录

    为Jupyter notebook配置R kernel过程及踩坑记录 注意:本文为作者安装过程及折腾的过程,内容比较冗杂,如果读者想直接创建一个属于自己的子环境则参考: 如下文章: anaconda下 ...

最新文章

  1. python使用缩进来体现代码之间的逻辑关系-python使用缩进来体现代码之间的逻辑关系吗?...
  2. docker安装mysql指定_Docker安装MySql,并且使用外部客户端链接
  3. 实例使用pyhanlp创建中文词云
  4. 【Android】android开发之splash闪屏页的四种实现方式,启动页的实现教程。
  5. JS Event handler example - event capture and bubble
  6. 学习笔记(20):Python网络编程并发编程-互斥锁与join的区别
  7. ERP的配置管理实践
  8. 同时防服务器维修,加强服务器日常运维,避免宕机灾难发生
  9. php中的echo、print,print_r、var_dump
  10. python爬虫源代码_【Python每日一问】Python爬虫能做什么?
  11. 概率论:假设检验、极大似然估计、无偏估计
  12. 莫言母亲的八大教育真经
  13. 最详细教学--实现win10 多用户同时远程登录内网机--win10+frp+rdpwrap+阿里云服务器
  14. 计算机上的符号在哪找,像w的那个符号在哪里可以找到?word文档
  15. Excel引用外部表格,通过Key得到想要的数据
  16. 七夕界的浪漫之光,向你安利程序员的表白方式
  17. 大话循环神经网络(RNN)
  18. 绿卡基础知识:I-129
  19. ECharts如何制作省份地图并在地图上显示自定义图标/散点图
  20. 外部Portal认证系统 对接 华为 H3C 等设备实现 LDAP AD域 网络准入实名认证

热门文章

  1. 怎么用stata打开dta文件_用shell命令打开任意格式的文件
  2. 那些央视没爆光的信息泄露内鬼
  3. 浅读《简约之美-软件设计之道》
  4. 梦幻西游手游海外服务器维护,梦幻西游手游服务器5月4系统维护
  5. 【电脑打不出字来怎么办】
  6. jetson nano补充:根目录/usr刷机扩容 瘦身
  7. android飞屏app下载地址,飞屏暴风安卓版下载-飞屏暴风影音 安卓版v7.1.07-PC6安卓网...
  8. matlab分段函数M文件,MATLAB用命令文件编分段函数
  9. iic模块PCF8574驱动1602学习记载
  10. 原生javascript手风琴导航