Qt 5.10.1 + PCL 1.8.1 环境搭建

本文详细记录了在Qt 5.10.1环境下配置PCL 1.8.1的完整过程,包括安装Qt和cmake,重新编译VTK以支持Qt,修改Qt项目的.pro文件,以及成功运行PCL测试程序的步骤。在安装和配置过程中,特别强调了处理路径中的空格、选择正确的编译平台以及确保VTK与Qt的兼容性等关键点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目需要用到PCL库,想集成到Qt中进行开发。有很多网页描述了具体过程,但作为一个小白,有些细节我没有注意到的,导致配置过程出现了很多波折,运行示例代码时发生了各种错误。所以把自己最后成功的方案记录下来,警示自己,也希望能给有需要的朋友做个参考。

安装Qt及cmake

Qt自不必说,cmake是后面用来重新编译VTK的源码用的。这两者的安装都没啥问题,从官网下载合适的安装包一直下一步即可。这里我使用的安装包版本为:

版本
Qt qt-opensource-windows-x86-5.10.1.exe
cmake cmake-3.15.1-win64-x64.msi

安装Qt时,要安装对msvc 64位编译器的支持(因为我后面安装的PCL用的是64位的包)。

安装PCL

可以直接使用GitHub上提供的 AllInOne installer。由于我电脑上已经安装的Visual Studio版本是2015,所以我下载了 PCL-1.8.1-AllInOne-msvc2015-win64.exe。安装过程与安装一般软件无异,一直下一步即可。需要注意的是:

  1. 安装时如果出现选择路径的地方,要把路径中的空格全部删除,这据说是由于Qt无法识别路径中的空格;

  2. 安装过程中会弹出PCL的支持模块OpenNI2的安装界面,网上都说为了便于管理,最好把OpenNI2按照到PCL安装目录的 3rdParty 文件夹下。具体可参考这里

重新编译VTK

这是为了能够在Qt中使用PCL(预构建的 PCL 安装包中, VTK 没有添加对 Qt 的支持。
这一步主要参考了两个网页: 12
大致过程:首先需要下载VTK的源码,然后用cmake处理源码,生成Visual Studio解决方案,最后打开生成的解决方案进行编译。用cmake 做 configure 的过程中要把上面两个网页中的步骤都做好,此外还有一些需要额外注意的地方:

  1. 在使用cmake处理源码时,第一次点击Configure时会弹窗要求选择编译器和目标平台,如下图
    在这里插入图片描述
    因为安装的 PCL 是 x64 的,所以一定要注意第二个框里(Optional platform for generator)要选择x64。我第一次编译 VTK 时这里就忘记选了,不选则使用默认的32位平台的设置,最后导致在链接的时候会报错。
  2. 第一次Configure后,要在 VTK 下勾选VTK_ALL_NEW_OBJECT_FACTORYVTK_DEBUG_LEAKS
    在这里插入图片描述在这里插入图片描述
    之所以想到要勾选这两项,是因为我某次重新编译 VTK 并运行示例程序时,会报

无法解析的外部符号 "public: __cdecl vtkDebugLeaksManager:: …

这样的错,以及一个貌似和 vtkNewObjectFactory 相关(抱歉没有做好记录,忘记完整的错误信息了)的错。 查了很多资料之后,发现这是因为编译时找不到相应的 lib 文件,然而我明明把 VTK lib 目录下的所有 lib 都添加到 Qt 里了 T_T。无奈之下打开 cmake 浏览了一下所有的选项,看到了这两个似乎相关的,勾选以后重新 generate 并用 VS 生成了一次,就不再报错了。

  1. 其他的按照网页中的要求设置好。
    这里要强调一下,一定要把Ungrouped Entries下所有Qt相关的文件夹中的msvc2015改成msvc2015_64,因为是要生成64位的相应文件。我某次编译这里没有改,最后测试时会报错。

修改Qt的.pro文件

在Qt的.pro文件中添加PCL相关的include和lib文件路径,具体可以参考 网页1 或者 网页2
一种更方便的做法是把下面这些包含头文件和链接库的内容放在一个.pri文件里,比如叫做 pcl.pri,放在我的pcl安装目录 D:/PCL1.8.1/ 下:

INCLUDEPATH += D:/PCL1.8.1/include/pcl-1.8\

INCLUDEPATH += D:/PCL1.8.1/include/pcl-1.8/pcl\

INCLUDEPATH += D:/PCL1.8.1/3rdParty/Boost/include/boost-1_64\

INCLUDEPATH += D:/PCL1.8.1/3rdParty/Boost/include/boost-1_64/boost\

INCLUDEPATH += D:/PCL1.8.1/3rdParty/Eigen/eigen3\

INCLUDEPATH += D:/PCL1.8.1/3rdParty/FLANN/include\

INCLUDEPATH += D:/PCL1.8.1/3rdParty/FLANN/include/flann\

INCLUDEPATH += D:/PCL1.8.1/3rdParty/OpenNI2
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值