【PCL】QT5 + PCL初步使用debug

本文讲述了在编译PCL项目时遇到的`pcl::console::print` undefined reference错误,并提供了解决方法,包括添加缺失库到.pro文件和修复库路径。后续内容介绍了如何处理运行时的`fcl.so.0.7:no such file or directory`错误,通过更新系统库目录确保正确加载新安装的库。

编译项目报错

PCL undefined reference to `pcl::console::print(pcl::console::VERBOSITY_LEVEL, char const*, …)

遇到了同类问题,对pcl 库的引用缺失,根据提示 在 .pro 里面 LIBS+= 需要的库即可编译成功。

运行过程报错

参考以前的文章:error while loading shared library fcl.so.0.7 no such file or directory
原因是系统的库目录里面没有包含上刚安装的pcl 库文件,

sudo /sbin/ldconfig -v //更新系统默认库目录

pcl 程序编译运行成功

在这里插入图片描述

<think>我们正在处理一个关于在Windows系统下使用Visual Studio 2019集成PCL 1.11.1、VTK 8.2和Qt 5.14.2(注意用户提到了Qt 5.4.12,但引用中多次出现Qt5.14.2,可能是笔误)的配置问题。根据引用内容,我们可以整合配置步骤。 注意:用户要求的是Qt 5.4.12,但引用中都是5.14.2,这里我们按照用户要求的版本,但需要注意Qt5.4.12是一个比较老的版本,可能配置上会有差异。由于引用中没有直接提到5.4.12,因此我们需要基于引用中的配置思路,并适配到5.4.12版本。 由于引用中多次提到配置属性表(property sheet)的方法,我们可以采用这种方法来避免多重属性表之间的冲突。 步骤概览: 1. 安装所需软件:VS2019, PCL1.11.1, Qt5.4.12, VTK8.2(需要编译) 2. 编译VTK8.2(使用CMake,指定Qt5.4.12的路径) 3. 配置环境变量 4. 创建属性表(包含PCL、VTK、Qt的包含目录、库目录、链接库等) 5. 测试配置 详细步骤: 一、软件安装 1. 安装Visual Studio 2019,选择“使用C++的桌面开发”工作负载。 2. 安装PCL1.11.1:从官网下载AllInOne安装包(msvc2019版本),安装时注意选择添加到系统路径(或者手动添加)。 3. 安装Qt5.4.12:从Qt官网下载安装程序,选择msvc2017(因为VS2019兼容msvc2017的编译器,注意Qt5.4.12可能没有专门针对msvc2019的版本,所以使用msvc2017的版本通常是兼容的)或者选择msvc2015(如果5.4.12没有msvc2017版本,则可能需要使用VS2015编译器,但VS2019可以安装VS2015的编译工具链)。注意:用户明确要求Qt5.4.12,所以我们使用这个版本,但要注意编译器匹配。 4. 安装CMake:用于编译VTK。 二、编译VTK8.2 1. 下载VTK8.2.0源码。 2. 使用CMake配置: - 设置源码路径和编译输出路径(例如:创建一个build文件夹)。 - 点击Configure,选择Visual Studio 2019和对应的平台(x64)。 - 配置以下选项: * BUILD_SHARED_LIBS: ON(推荐) * CMAKE_INSTALL_PREFIX: 设置安装路径(如C:\VTK-8.2.0-install) * VTK_Group_Qt: ON(启用Qt支持) * 指定Qt5的路径:设置Qt5_DIR为Qt5安装目录中的lib/cmake/Qt5(例如:C:\Qt\5.4.12\msvc2017_64\lib\cmake\Qt5)注意:根据实际安装路径修改,并且要确保该路径下能找到Qt5的配置文件。 * 其他选项保持默认,或者根据需求调整。 - 点击Generate生成VS工程。 3. 打开生成的VTK.sln,选择Release(或Debug)模式,生成解决方案(Build Solution)。然后,在解决方案资源管理器中右键点击INSTALL项目,选择生成(Build)进行安装。 4. 将VTK安装路径(CMAKE_INSTALL_PREFIX指定的路径)中的bin目录添加到系统环境变量PATH中。 三、配置属性表(Property Sheet) 在VS2019中,创建一个新的项目(或打开已有项目),然后: 1. 打开“属性管理器”(View -> Other Windows -> Property Manager)。 2. 右键单击项目,选择“添加新项目属性表”(Add New Project Property Sheet)。 3. 命名并保存(如PCL_QT_VTK.props)。 4. 编辑该属性表: 配置包含目录(Include Directories): ``` C:\PCL 1.11.1\include\pcl-1.11 C:\PCL 1.11.1\3rdParty\Boost\include\boost-1_74 C:\PCL 1.11.1\3rdParty\Eigen\eigen3 C:\PCL 1.11.1\3rdParty\FLANN\include C:\PCL 1.11.1\3rdParty\OpenNI2\Include C:\PCL 1.11.1\3rdParty\Qhull\include C:\VTK-8.2.0-install\include\vtk-8.2 (注意:这是编译安装后的VTK头文件路径) C:\Qt\5.4.12\msvc2017_64\include (根据实际安装路径调整) C:\Qt\5.4.12\msvc2017_64\include\QtWidgets ... (其他需要的Qt模块) ``` 配置库目录(Library Directories): ``` C:\PCL 1.11.1\lib C:\PCL 1.11.1\3rdParty\Boost\lib C:\PCL 1.11.1\3rdParty\FLANN\lib C:\PCL 1.11.1\3rdParty\OpenNI2\Lib C:\PCL 1.11.1\3rdParty\Qhull\lib C:\VTK-8.2.0-install\lib (编译安装后的VTK库路径) C:\Qt\5.4.12\msvc2017_64\lib (Qt库目录) ``` 配置链接器输入(Linker Input): 这里需要添加具体的库文件。由于库文件很多,可以按需添加。通常包括: - PCL的核心库:如pcl_common_debug.lib(Debug模式)或pcl_common_release.lib(Release模式)等 - VTK的库:如vtkRenderingCore-8.2.lib等(注意:具体需要哪些库取决于你使用的功能,可以参考引用[5]中的初始化) - Qt的库:如Qt5Core.lib, Qt5Gui.lib, Qt5Widgets.lib等 此外,还需要注意: - 预处理器定义:确保定义了`_CRT_SECURE_NO_WARNINGS`(避免一些安全警告错误),以及`_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS`(如果使用C++17)等。 - 在代码中,按照引用[5]的方法,可能需要初始化VTK的模块,例如: ```cpp #include <vtkAutoInit.h> VTK_MODULE_INIT(vtkRenderingOpenGL2); VTK_MODULE_INIT(vtkInteractionStyle); ``` 四、环境变量 确保系统环境变量PATH包含: - PCL的bin目录(C:\PCL 1.11.1\bin) - PCL的3rdParty的各个bin目录(如Boost, FLANN, OpenNI2, Qhull等) - VTK的bin目录(C:\VTK-8.2.0-install\bin) - Qt的bin目录(C:\Qt\5.4.12\msvc2017_64\bin) 五、测试 创建一个简单的Qt程序,包含一个窗口,并尝试使用PCL读取一个点云文件并用VTK显示。 注意:由于Qt5.4.12和VS2019的兼容性,可能会遇到问题。如果遇到问题,可能需要更新Qt版本(如使用引用中常用的5.14.2)或者使用VS2017。 常见问题解决: 1. 如果编译时出现找不到Qt5的模块,检查Qt5_DIR的设置是否正确(在编译VTK时)以及属性表中的包含目录和库目录是否正确。 2. 运行时出现缺少dll,检查环境变量PATH是否包含所有必要的dll路径。 3. 如果出现链接错误,检查链接库的版本(Debug/Release)是否一致,以及库名称是否正确。 由于用户要求的是Qt5.4.12,而引用中都是5.14.2,因此上述步骤中涉及Qt的路径需要根据实际安装调整。 注意:引用[2]提到“直接配置QT+PCL+VTK的属性表”,我们可以参考其思路,但需要适配到Qt5.4.12。 相关问题: 1. 在编译VTK时如何处理Qt5.4.12的路径? 2. 如果遇到Qt5.4.12和VS2019不兼容的问题,有什么解决方案? 3. 如何编写一个简单的Qt程序来显示PCL点云? </think>### Windows系统下Visual Studio 2019集成PCL 1.11.1、VTK 8.2和Qt 5.14.2的配置指南 #### 一、环境准备 1. **软件版本要求**: - Visual Studio 2019(推荐专业版) - PCL 1.11.1(AllInOne安装包) - VTK 8.2.0(需源码编译) - Qt 5.14.2(MSVC2017 64-bit组件) - CMake 3.20+(用于编译VTK) 2. **关键路径设置**: - PCL路径:`C:\PCL 1.11.1\` - VTK安装路径:`C:\VTK-8.2.0-install\` - Qt路径:`C:\Qt\5.14.2\msvc2017_64\`[^1][^2] #### 二、VTK编译步骤(关键环节) 1. **CMake配置**: ```cmake BUILD_SHARED_LIBS = ON VTK_Group_Qt = ON Qt5_DIR = C:/Qt/5.14.2/msvc2017_64/lib/cmake/Qt5 CMAKE_INSTALL_PREFIX = C:/VTK-8.2.0-install ``` 2. **生成VS工程**: - 选择`Visual Studio 2019`和`x64`架构 - 勾选`Advanced`选项确保所有Qt模块被检测到 3. **编译安装**: - 在VS2019中生成`ALL_BUILD`项目(Release模式) - 生成`INSTALL`项目[^2][^3] #### 三、VS2019属性表配置 创建`PCL_QT_VTK.props`属性表: ```xml <IncludePath> C:\PCL 1.11.1\include\pcl-1.11; C:\PCL 1.11.1\3rdParty\Boost\include\boost-1_74; C:\VTK-8.2.0-install\include\vtk-8.2; C:\Qt\5.14.2\msvc2017_64\include </IncludePath> <LibraryPath> C:\PCL 1.11.1\lib; C:\VTK-8.2.0-install\lib; C:\Qt\5.14.2\msvc2017_64\lib </LibraryPath> <Link> pcl_common_release.lib; vtkRenderingCore-8.2.lib; Qt5Core.lib; Qt5Gui.lib; Qt5Widgets.lib </Link> ``` > **注意**:Debug版本需替换为`*_debug.lib`[^4][^5] #### 四、环境变量配置 添加系统PATH: ``` C:\PCL 1.11.1\bin; C:\VTK-8.2.0-install\bin; C:\Qt\5.14.2\msvc2017_64\bin; C:\PCL 1.11.1\3rdParty\OpenNI2\Tools ``` #### 五、验证测试代码 ```cpp #include <QApplication> #include <pcl/point_cloud.h> #include <vtkSmartPointer.h> #include <vtkSphereSource.h> int main(int argc, char** argv) { QApplication app(argc, argv); // PCL功能验证 pcl::PointCloud<pcl::PointXYZ> cloud; cloud.width = 100; cloud.height = 1; // VTK功能验证 vtkSmartPointer<vtkSphereSource> sphere = vtkSmartPointer<vtkSphereSource>::New(); sphere->Update(); return app.exec(); } ``` #### 六、常见问题解决 1. **Qt插件加载失败**: - 复制`platforms`文件夹:`C:\Qt\5.14.2\msvc2017_64\plugins\platforms` → 可执行文件目录 2. **VTK渲染窗口不显示**: - 添加VTK初始化代码: ```cpp #include <vtkAutoInit.h> VTK_MODULE_INIT(vtkRenderingOpenGL2); VTK_MODULE_INIT(vtkInteractionStyle); ``` 3. **PCL链接错误**: - 检查Boost版本匹配(PCL 1.11.1需Boost 1.74)[^1][^4]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值