VS2017+PCL1.8.1+Cmake(3.6 or later)环境配置
来源:互联网 发布:家用健身器材 知乎 编辑:程序博客网 时间:2024/06/05 09:47
身为博士,最近转了方向,毅然从光学设计跳到SLAM,其中辛苦心酸不能提。庆幸的是二位导师的体谅和理解,中国好老板,同样放在心里。
话不多说,要学习SLAM,高博等大神提供的解决方案都是在linux系统下。对linux系统不是很熟悉的同学,或者像我这般转专业的小白可能会很头疼。
我目前的思路是现在windows系统下把点云玩起来,同时学习linux系统,并慢慢搭建slam环境。这二者并不相互违背。就像很多同学利用matlab去了解算法,以及算法中各项参数的作用,在工程实践中则选择c,or c++提高效率一样。对我来说,这是理论和实践并行学习的最好策略了。当然,如有大神指教,m18729348406@163.com,万分感激。
好啦,说了这么多,不过是给自己看,记录下此刻的心境和思路,方便来日反思。
进入正题,vs2017+pcl1.8.1+Cmake(3.6 or later)。
参考博客:
http://unanancyowen.com/en/pcl181/ 点击打开链接 内含PCL1.8.1ALL-in-one Installer MSVC2017 (x32,x64)以及PCL1.8.1 PDB MSVC2017(x32,x64)
https://segmentfault.com/a/1190000003988970
其中vs2017的安装较为简单,这里就不再赘言了。
1.软件角色
pcl是点云算法库。
pcl-pdb是pcl的数据库文件。
cmake是用来为你所编写的程序进行环境配置及生成项目文件。有blog提供不使用Cmake的解决方案,但是从使用上将,建议安装Cmake,这样就不需要每次编写项目的时候还要兼顾配置环境变量。毕竟包含目录,库目录,以及链接器--输入--附加依赖项中加入lib文件是一件并不轻松的工作。
visual studion是windows的开发工具,将经过cmake生成的项目文件执行产生可执行文件。
qt是一个图形库,这里需要安装qt是因为pcl中有一个第三库vtk中涉及qt库中的函数。某些VTK库中的函数对qt有依赖,因此虽然目前不知道用处,但是还是安装了QT。
2.安装PCL1.8.1
由于OpenNI2需要另外安装,其安装路径应在$PCL-ROOT/PCL 1.8.1\3rdParty\OpenNI2下。之后一路点下一步就好。
3.安装Cmake
然后一路next,安装非常简单。
4.利用Cmake进行编译
准备工作
首先在pcl1.8.1文件夹下新建文件夹,可命名为example。如下图:
注意,确定自己安装的文件夹包含cmake文件,且内含PCLConfig.cmake、PCLConfigVersion.cmake如下图:
否则,cmake将一直报错。
在example文件下建立两个文件夹,如图:
cmake-bin是空文件夹,方便编译后的文件存储。
source文件包括:
其中Cmakelists.txt中包含下列cmake程序(可直接粘贴复制):
cmake_minimum_required(VERSION 2.6 FATAL_ERROR)project(pcd_write_test)find_package(PCL 1.3 REQUIRED COMPONENTS common io)include_directories(${PCL_INCLUDE_DIRS})link_directories(${PCL_LIBRARY_DIRS})add_definitions(${PCL_DEFINITIONS})add_executable(pcd_write_test pcd_write.cpp)target_link_libraries(pcd_write_test ${PCL_COMMON_LIBRARIES} ${PCL_IO_LIBRARIES})
代码的具体含义可参考:
http://pointclouds.org/documentation/tutorials/using_pcl_pcl_config.php
点击打开链接
同时在vs2017中新建项目,名称设为pcd_write 其中输入测试代码,如:#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;void viewerOneOff(pcl::visualization::PCLVisualizer& viewer){viewer.setBackgroundColor(1.0, 0.5, 1.0); //设置背景颜色 }int main(){pcl::PointCloud<pcl::PointXYZRGBA>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZRGBA>);pcl::io::loadPCDFile("test.pcd", *cloud);pcl::visualization::CloudViewer viewer("Cloud Viewer"); //创建viewer对象 viewer.showCloud(cloud);viewer.runOnVisualizationThreadOnce(viewerOneOff);system("pause");return 0;}
将其保存在PCL1.8.1/example/source文件夹下
开始编译
打开Cmake,
值得注意的有几点:
1.将where is the source code和where to build the binaries 如图设置好后,会弹出选择VS版本的选项,选择 VS 15 2017 win64.可根据自身版本进行选择。
2.框格中有红色字体报warning不用慌,只要如下:
出现Configuring done 和Generating done之后,即说明Cmake编译成功。二者的作用如下:
这个时候,就可以愉快的进入Cmake-bin文件夹,此时该文件下下应为:
设置的名称不同,sln文件名和vcvproj的文件名会和图中不一致,不必纠结,可对应即可。
打开Sln文件,进行vs2017.
如出现如下error1:
无法启动程序D:\build\debug\ALL_BUILD 系统找不到指定文件;
处理办法为:
将project_inliers工程设置为启动项目 找到项目右击--设为启动项目。
将project_inliers工程设置为启动项目
error2:
error LNK2019: 无法解析的外部符号
在VC++目录--库目录中加入PCL1.8.1/lib文件;
在附加依赖项中加入:pcl下 的lib文件名:
如:
pcl_common_debug.lib
pcl_common_release.lib
pcl_features_debug.lib
pcl_features_release.lib
pcl_filters_debug.lib
pcl_filters_release.lib
pcl_io_debug.lib
pcl_io_ply_debug.lib
pcl_io_ply_release.lib
pcl_io_release.lib
pcl_kdtree_debug.lib
pcl_kdtree_release.lib
pcl_keypoints_debug.lib
pcl_keypoints_release.lib
pcl_ml_debug.lib
pcl_ml_release.lib
pcl_octree_debug.lib
pcl_octree_release.lib
pcl_outofcore_debug.lib
pcl_outofcore_release.lib
pcl_people_debug.lib
pcl_people_release.lib
pcl_recognition_debug.lib
pcl_recognition_release.lib
pcl_registration_debug.lib
pcl_registration_release.lib
pcl_sample_consensus_debug.lib
pcl_sample_consensus_release.lib
pcl_search_debug.lib
pcl_search_release.lib
pcl_segmentation_debug.lib
pcl_segmentation_release.lib
pcl_stereo_debug.lib
pcl_stereo_release.lib
pcl_surface_debug.lib
pcl_surface_release.lib
pcl_tracking_debug.lib
pcl_tracking_release.lib
pcl_visualization_debug.lib
pcl_visualization_release.lib
可能有同学会问:如何一下得到上述的lib文件名称,而不是一个一个的粘贴复制:
有方法如下:
分别粘贴复制静态链接库名到文本甚是麻烦,故通过批处理来完成
例如要获取目录中E:\CPlusPlusLib\VTK_debug\VTK2008\lib\vtk-5.8下的所有静态链接库文件名并存储至文本.txt,方法如下:
1、win+r
2、输入:cmd回车
3、输入:cd /d E:\CPlusPlusLib\VTK_debug\VTK2008\lib\vtk-5.8 回车
4、输入:dir /b *.lib*>0.txt 回车
在0.txt文件中即可获得。
按照上述方法运行编译后的pcd_write.cpp文档不报错,且出现:
即为安装 成功,至于为什么是这三种颜色,而不是test.pcd 中的兔子
因为没有点云的数据库啊!!!
- VS2017+PCL1.8.1+Cmake(3.6 or later)环境配置
- win8安装PCL1.8.1配置VS2017
- pcl1.7.2+vs2013环境配置
- VS2010+PCL1.6.0环境配置
- vs2015+PCL1.8.1配置
- Win10&VS2017&OpenCV环境配置
- OpenCV3.3 VS2017环境配置
- Windows10下VS2013+PCL1.8环境配置
- Win10+VS2013+PCL1.8 环境配置
- opencv学习(一)之VS2017环境配置
- OpenCV3.2.0+VS2017环境配置与常见问题(巨细坑爹版)
- win10 下使用 CMake 和 VS2017 配置 Assimp
- 使用 CMake + VS2017 ( + Python 3) 配置和编译 OpenCV 3.3
- 关于_ENV(lua5.2 or later)
- 隐藏状态栏(iOS7 or later)
- UVAlive3211 Now or later(2-SAT)
- PCL学习笔记(1):pcl1.6.0+vs2010环境配置以及第一个pcl程序
- vs2017配置作业环境【opengl+opencv】
- python:数据类型
- 多态对象模型
- Git安装及使用文章网址收录
- 自然语言处理
- python入门运算(shape 、tile 、sum)
- VS2017+PCL1.8.1+Cmake(3.6 or later)环境配置
- 第十一周项目二——操作用邻接表存储的图
- chrome文件上传 /获取文件路径c:/fakepath的解决办法
- 深度学习第一课 第四周 深层神经网络用python的实现
- leetcode 446. Arithmetic Slices II
- malloc、free、calloc、realloc的介绍
- maven-assembly-plugin 入门指南
- python2.7出现IOError: [Errno 5] Input/output error
- 最长公共子串问题 动态规划