@[TOC]
前言
博主写该文章时,使用的三个软件均为最新版,踩了很多坑,先给大家探探路。吐血整理!
本人之前学习三维点云处理时安装过PCL,并且已经在VS2017中配置成功(应项目需求,需设计在Windows环境下运行的点云处理软件)。相比于Linux,在Windows环境下配置PCL会出现更多的问题,整个过程更复杂,当时也是收集了许多资料,踩了各种各样的坑,奈何疏于记录,整个流程和注意事项已忘了差不多了。现在更换了电脑需要重新配置PCL,各种操作需要从头再来。以防同样尴尬的事情再次出现,这次记录下整个下载、配置过程分享给大家,不仅是为了沉淀过程、积累经验以备不时之需;也是给遇到同样困惑的朋友们一个可参照的配置思路。
注意:因为本人现在使用的电脑已经安装好了VS2019
和Qt5.14
,并且深度使用过一段时间(平常有需求做用户界面时,我是直接在Qt Creator上写相关的代码,没有试过在VS上实现Qt的代码。因此这次配置还要完成VS和Qt之间的连接)。这次就不考虑先卸载Qt和VS再安装三个软件,而是选择直接安装PCL
,再对早已安装的VS和Qt进行扩展的思路来配置。相信有很多朋友和我的情况相同,毕竟学习也包含软件下载、软件扩展的过程
这次也是从一种特殊角度出发,记录安装、配置VS2019+Qt5.14+PCL
的全过程。还没安装软件的可以搜下软件安装的教程,网上的帖子非常多,这里我就不重复了。
1 配置环境
- Windows10 x64
- Visual Studio 2019
- Qt 5.14.2
- PCL 1.10.1
2 准备工作
2.1 VS 2019 下载安装配置
如果没有安装过VS2019
可以点击此处下载社区版(免费的)即可,具体安装步骤可以上网查询相关的帖子。
若早已安装使用了VS2019,可以从
工具
----获取工具和功能
来管理安装的组件。
2.2 Qt 5.14.2 下载安装
2.2.1 本体组件管理
如果没有安装过Qt 5.14.2
可以点击此处下载即可,具体安装步骤可以上网查询相关的帖子。
若早已安装使用了
Qt
,需要查看有没有安装msvc组件
。我当时直接使用的Qt Creator
,所以没有安装msvc组件
。相比于VS,Qt的组件管理器没放在界面中,使用起来颇为麻烦。
在QT安装目录可以找到QT的组件管理软件
MaintenanceTool
此时默认的
存储库
不能用,只能手动配置。手动添加储存库要定位一个储存有Qt在线安装镜像的地址
,http://download.qt.io/static/mirrorlist/这个网站,显示中国有四个镜像地址,挑选任意一个,点击HTTP
进入一个网络文件夹。
进入最终文件夹
/online/qtsdkrepository/windows_x86/root/qt/
,复制当前地址。
利用复制的网址创建
临时存储库
。
[图片上传失败...(image-4c62f3-1586141234867)]
可以开始管理你的组件了!
勾选上
msvc2017 64-bit
即可,目前组件还没有msvc2019
选项,勾选2017也可以,亲测有效!其他组件
怎么选择可以看这篇文章https://blog.csdn.net/WU9797/article/details/80991126
[图片上传失败...(image-85fa9-1586141234867)]
2.2.2 安装VS插件
下载插件vsaddin
:
https://download.qt.io/official_releases/vsaddin/
安装完成后重新打开
VS2019
,在扩展一栏下边就会出现Qt VS Tools
,进入Qt Options
添加这两个编译器,设置
msvc2017_64
为默认编译器。
Qt和VS之间的配置已完成!
2.3 PCL 1.10.1 下载安装
2.3.1 本体安装
如果没有安装过Qt 5.14
可以点击此处下载即可。下载AllInOne
和pdb
文件
注意,在
GitHub
上看到的版本是PCL团队公布的最新版本1.10.1
;在PCL
官网上可下载的最新的为1.6.0
版本。我还没去了解究竟是因为官网不再更新了还是说GitHub推出的只是测试版,本着买新不买旧的原则这次安装1.10.1
版本的。
PCL
库安装一般有两种方式:一种是下载PCL的所有第三方依赖库以及PCL的源代码
后,自行进行编译安装(在Linux上实现非常便捷,只需要在终端上敲命令即可),这样做的好处是可以根据自己的需求修改源代码;另一种是利用AllInOne
版本进行安装,所有依赖在安装PCL
时自动安装了。本文采用第二种安装方式。
运行AllInOne
文件
这里需要配置安装的其他库,如果自己不确定到底有没有其他的软件安装过相关的库,那么就全部都勾选了,否则库的缺失会导致点云库不能正常工作。
安装过程中,会跳出
OpenNI2
的单独安装对话框,将安装路径修改为 3rdParty/OpenNI2
,即和其他 PCL 依赖的第三方库放在一起,然后继续,完成 PCL 的安装。
解压
pcl-1.9.0-pdb-msvc2017-win64.zip
,将解压得到的文件夹中的内容添加到你的PCL安装bin
目录中。
安装到此结束!
2.3.2 手动编译VTK
PCL 依赖 VTK
,在其 3rdParty
目录下可以看到 VTK
。那为什么还要手动编译 VTK
呢?这是因为,PCL 安装目录下的 VTK 并不完整,其中就少了与 Qt
相关的模块(比如 QVTKWidget)。所以我们需要手动编译 VTK,并替换 PCL 3rdParty
下的 VTK
。
可以发现,PCL1.9.1 依赖 VTK8.2
,所以我们编译这个版本的 VTK(如果你使用的是其他版本的 PCL,请编译对应版本的 VTK)。可以在 VTK Github 下的 release
页面获取对应版本的 VTK 源码
。在此之前,你需要先安装 cmake
,用于生成平台相关的解决方案。
首先将 VTK 源码解压,打开 安装好的cmake-gui
,设置源码目录
(此处即为 VTK 源码目录)和生成目录
。并使用 Add Entry
按钮添加缓存变量 CMAKE_DEBUG_POSTFIX
,类型为 STRING
,值设置为 -gd
。这是为了将最后编译的 debug
文件与 release
文件区分开来。
单击
Configure 进行配置
,根据安装的 Visual Studio
的版本选择对应的生成器,选择 x64
平台。然后开始配置。
配置过程中,
cmake
会检测当前环境,编译器等,并生成缓存变量。第一次配置完成后,需要对一些缓存变量进行修改,如 CMAKE_INSTALL_PREFIX
,它规定了最后构建的 VTK 安装在什么地方,这个目录可以随意选择,到时候拷贝到 PCL 3rdParty 目录下即可。此外,可以选择需要构建的内容:BUILD_DOCUMENTATION
, BUILD_EXAMPLES
, BUILD_SHARED_LIBS
, BUILD_TESTING
。考虑到没有直接使用 VTK,而只是用于替换 PCL 中的 VTK,可以只勾选 BUILD_SHARED_LIBS
,不对文档、实例和测试进行生成,这样可以节省生成和构建的时间。另外一个比较重要的是,要勾选 VTK_Group_Qt
。具体如下图所示,单击 Configure,进行配置。
然后就会提示
Qt5_DIR NOT FOUND
,所以,将该缓存变量设置为 Qt cmake
目录,在我的电脑上该目录为 D:\Qt\Qt5.14.2\5.14.2\msvc2017_64\lib\cmake\Qt5
(具体根据 Qt 的版本和安装目录进行合适的设置)。将 VTK_QT_VERSION
设置为 5
。
然后
Configure
,配置完成后,开始 Generate
,生成完毕后,可以在生成目录下发现 Visual Studio 解决方案
(.sln文件
)。打开解决方案(用VS2019打开.sln
文件),其中包含了上百个即项目,默认是 Debug x64
模式,右击 ALL_BUILD
项目,选择生成,生成完成后,右击 INSTALL
项目,选择生成,即开始安装,将生成 debug 库文件
。待构建完成后,切换为 Release x64
模式,按同样的操作,生成 release 库文件(构建过程比较耗时,大概需要 2 个小时左右)。最终完成 VTK 的构建,可以在先前配置的安装目录下找到构建好的文件。
最后,将构建好的整个目录拷贝至
PCL 3rdParty
目录下,更名为 VTK,替换掉原来的 VTK。此外,为了能够在 Qt Designer
中使用 QVTKWidget
控件,将 C:\Program Files\PCL1.10.1\3rdParty\VTK\plugins\designer
下的.dll文件
拷贝至 D:\Qt\Qt5.14.2\5.14.2\msvc2017_64\plugins\designer
目录下(具体目录设置根据软件版本和安装路径而定)。
PCL1.10.1+VS2019+Qt5.14.2 安装及配置到此基本结束。
3 环境变量设置
最后还需要进行环境变量设置(如已添加则忽略,可以添加在系统变量中,这样每个用户不用单独地设置):
PCL_ROOT
指向 PCL 安装根目录(示例:C:\Program Files\PCL1.10.1
)。QTDIR
指向 QT 安装根目录(示例:D:\Qt\Qt5.14.2
)。在 PATH 环境变量添加以下值:
%PCL_ROOT%\bin
%PCL_ROOT%\3rdParty\FLANN\bin
%PCL_ROOT%\3rdParty\VTK\bin
%PCL_ROOT%\3rdParty\Qhull\bin
%PCL_ROOT%\3rdParty\OpenNI2\Tools
以上就是 PCL1.10.1+VS2019+Qt5.14 下载、安装及配置方法了,希望对大家有所帮助~
如果觉得我的文章对你起到了些许的帮助,做下手指操点击下面的大拇指感谢~
我是专注自动驾驶、Lidar感知、三维点云处理、激光SLAM领域的阿川,欢迎各位志同道合的朋友在下面积极留言。欲将心事付瑶琴,希望能在交流中收获知识、经验和挚友