VS2019+Qt5.14.2+pcl-1.11.1+VTK-8.2.0环境配置
文章目录
一、简介
(一)、目标
本教程是设定在一个从未配置过VS2019+qt5+PCL+VTK的windows环境中,从零开始配置点云开发环境,此环境配置比较烦锁,且很容易出错,笔者几年前试过在两个不一样的windows环境中,按同样的配置方法,一台电脑配置成功,另一台配置失败。失败的那台电脑配置稍差。此次因为要做点云相关项目,所以要重新搭建一下开发环境。回想以前的配置流程,只能记个大概了,其中一些配置细节也忘了。所以笔者以这次项目机会重新梳理一下配置流程。期间也参考了网上博文,一步一步配置并记录,因此有了此教程。
此教程比较详细,有必要的说明,并配上了截图和提示,对初次配置点云开发环境的人来说比较友好。另外本文会附上所有安装软件,一次性下载,减少不必要的软件下载时间。各软件的版本需要适配,避免安装到后面出现各种问题,既浪费时间,又打击信心,本文介绍的各软件版本是经过验证的,可靠性不存在问题,可以放心使用。
另外,本文前8章是开发环境的搭建,如果说开发环境已搭建好的情况下,现在需要重新用vs2019创建一个软件项目,可以直接跳到第9章的环境配置。第8章Cmake+vs2019编译的VTK库,笔者也一并附上,方便使用者直接使用。
这里附上下载链接,需要的可自行下载,如果后期链接失效可以添加本人QQ:2284108152 (备注:“pcl开发软件”)联系我。本人后续也会做一些点云相关开发项目,有兴趣也可加我一起交流学习。
-
软件下载地址
- 百度:
通过网盘分享的文件:pcl软件开发环境搭建
链接: https://pan.baidu.com/s/1wJOzdHzzYpeVHNouWEZB7A 提取码: 1234
(二)、资料介绍
-
软件列表
名称 版本 对应文件 作用 Visual Studio 2019 Community vs_community__905539961.1614150471.exe 开发,管理,组织,编译软件项目 Qt 5.14.2 qt-opensource-windows-x86-5.14.2.exe 提供UI界面开发的库 VS下qt插件 2.4.0 qt-vsaddin-msvc2019-2.4.0.vsix 集成vs和qt的构建系统(连接作用) PCL PCL-1.11.1 PCL-1.11.1-AllInOne-msvc2019-win64.exe 提供点云数据处理的相关库 CMake 3.24.0 cmake-3.24.0-rc1-windows-x86_64.msi 预处理vtk源文件,供VS2019编译。 VTK库源码 8.2.0 VTK-8.2.0.zip 提供可视化显示点云数据的相关库 VTK库源码编译后的库文件 8.2.0 VTK-prefix VTK-8.2.0.zip编译后的库文件,供用户调用。 -
软件介绍(个别介绍)
- PCL-1.11.1 (PCL: Point Cloud Library)
- 定义:
PCL 是一个独立的、大规模的、开放的点云处理库,它涵盖了点云获取、滤波、分割、配准、检索、特征提取、识别、追踪、曲面重建等诸多点云处理环节。 - 功能:
点云获取:支持多种点云数据获取方式,例如从激光雷达(LiDAR)等设备获取原始点云数据。以 Velodyne 激光雷达为例,PCL 可以帮助读取其输出的点云数据格式,为后续处理做准备。
滤波处理:能够去除点云中的噪声点。比如统计滤波,它可以根据点云中点的分布统计特性,去除离群点。假设在一个室内场景的点云数据中,由于测量误差等原因出现了一些距离大部分点云较远的点,通过统计滤波可以将这些噪声点剔除,使点云数据更加纯净。
分割功能:可将点云按照不同的几何形状或者物体类别进行分割。例如在一个包含多个物体(如桌子、椅子、墙壁)的室内点云场景中,通过区域生长分割算法,PCL 可以根据点的几何特征(如曲率等)将属于不同物体的点云分割开来,方便后续对每个物体进行单独的分析和处理。
配准操作:用于将不同视角或者不同时间获取的点云数据进行对齐。例如在三维重建场景中,从不同角度扫描一个物体得到的多组点云,PCL 的配准算法(如 ICP - Iterative Closest Point 算法)可以找到这些点云之间的最佳变换关系,将它们拼接成一个完整的物体点云模型。
特征提取:可以提取点云的各种特征,像法线特征、FPFH(Fast Point Feature Histograms)特征等。这些特征对于点云的分类、识别等后续操作非常重要。例如在一个点云分类任务中,提取的法线特征可以帮助区分平面和曲面,进而区分不同的物体类别。 - 定义:
- VTK-8.2.0.zip (VTK:Visualization Toolkit)
- 定义:VTK 是一个用于可视化和图形处理的跨平台开源软件系统。版本 8.2.0 是 VTK 的一个特定版本,它在可视化方面提供了强大的功能。
- 功能:
数据可视化:能够将点云等多种数据类型以直观的图形方式展示出来。例如,它可以把点云数据渲染成三维空间中的点的集合,用户可以通过调整视角、颜色等参数来更好地观察点云的分布情况。同时,VTK 也支持将点云数据和其他几何数据(如网格模型)一起进行可视化展示。
图形处理能力:可以进行图形的变换、裁剪等操作。比如在可视化点云时,如果只想观察点云的某一部分,可以使用 VTK 的裁剪功能将不需要的部分去除。而且它可以对图形进行缩放、旋转和平移等操作,方便用户从不同角度查看数据。
支持多种数据格式:VTK 8.2.0 能够读取和处理多种数据格式,包括但不限于常见的点云数据格式和医学影像数据格式等。这使得它可以广泛应用于不同领域的数据可视化任务,如计算机辅助设计(CAD)、医学成像、地理信息系统(GIS)等领域,并且可以和其他软件系统进行数据交互。 - 总结:点云可视化化开发中,pcl提供的库负责对数据的处理,vtk提供的库用于将pcl处理后的数据进行可视化显示;
(三)、环境配置总结
此部分介绍是开发环境配置完成后的总结,后面配置需要做的事比较多,配置完成后这里总结一下我们到底做了啥,不然都不知道做这些工作的意义在哪里,后面时间久了要重新配置开发环境都不在到要如何下手,只有知道干了什么,才能理解得更深刻;
- 为什么pcl开发要用vs+qt环境为什么不能直接使用qt开发呢?
PCL 官方对 Visual Studio 提供了很好的支持,Visual Studio 具有完善的项目管理功能,能够方便地组织和管理 PCL 项目的文件和资源。可以轻松地添加、删除文件,设置项目属性,如编译选项、链接库等,对于大型 PCL 项目的开发和维护非常便利。虽然 Qt 也有自己的构建系统 qmake,但在处理复杂的 PCL 项目依赖关系时,可能会显得力不从心。相比之下,CMake 在处理 PCL 项目的依赖和跨平台构建方面更加灵活和强大,而 Visual Studio 对 CMake 的支持较好。
- 安装qt软件的作用?
前面说了用Visual Studio 软件的必要性,visual studio开发界面软件需要依赖其他组件的UI类库,比如mfc,qt或Windows Forms 。相比之下,qt具有跨平台性,界面设计功能丰富。vs+qt插件要开发界面程序,前提是qt本体得安装,因为程序运行需要依赖qt本体软件的库。另外一个最重要的原因是VTK官网提供的vtk源码(比如:vtk8.2.0)通过cmake+vs编译后,会输出一个定制的qt控件QVTKWidget(在第9章中第3、4节会介绍)。说明官方支持使用vs+qt这种组合来开发点云可视化的。
- CMake工具的作用?
CMake 是一个跨平台的构建工具,它可以根据不同的操作系统和编译器生成相应的项目构建文件。在构建 VTK 8.2.0 时,CMake 会读取 VTK 源代码目录下的 CMakeLists.txt 文件,这个文件包含了 VTK 项目的各种配置信息,如源文件列表、头文件路径、库文件依赖、编译选项等。基于这些信息,CMake 能够为 Visual Studio 生成工程文件,使得 VTK 可以在 Windows 平台上使用 VS 进行编译和构建。
总结:CMake工具这里的作用就是将VTK8.2.0源码进行预处理,生成可用vs打开运行的源码工程(对应后面配置教程的:VTK-install),然后通过vs进一步将源码工程编译成供外部程序调用的库(对应:VTK-prefix文件夹)。
(四)、参考链接
-
参考视频:
-
参考博文:
二、安装vs2019
(一)、安装教程
-
解压缩VS2015_ENT_CHS.zip,进入文件夹中,以管理员身份运行vs_enterprise.exe
-
修改安装路径,然后选择c++桌面开发
-
选中如下单个组件,然后开始安装
-
安装中
-
安装完成
三、安装qt5.14.2
(一)、安装教程
-
安装前暂时关闭网络
-
右键,管理员身份安装
-
设置安装路径
-
按如下进行选择相关组件,然后一路安装完成
-
安装完成
(二)、添加qt环境变量
-
如图点击“环境变量”
-
按如下图顺序添加qt环境变量,然后确定保存;
四、安装Qt VS插件
(一)、安装教程
- 安装VS Qt插件前,关闭VS和Qt
- 双击qt-vsaddin-msvc2019-2.4.0.vsix开始安装
- 自动识别vs2019,执行安装
- 安装完成后关闭
五、vs2019安装qt插件
-
打开VS2019,随便创建一个c++项目然后打开
-
参考如下图,点击扩展菜单,打开“Qt Options”
-
选中Qt路径,然后点击确定
-
配置成功后,点击OK关闭消息框
-
Qt路径设置后,再新建Qt程序,如下图,可以选择GUI程序
-
创建后运行测试成功
-
vs创建qt项目提示:“E1696 无法打开Qt源文件”的解决方案
参考链接:使用Visual Studio编译Qt项目出现“E1696 无法打开Qt源文件”的解决方案
六、安装PCL1.11.1
(一)、安装教程
-
双击“PCL-1.11.1-AllInOne-msvc2019-win64.exe”开始安装
-
点击“我接受”
-
按如下图操作
-
设置安装路径,注意去掉PCL和1.11.1之间的空格(切记)
-
一路安装到完成(此步骤安装时会默认安装OpenNI-Windows-x64-2.2.msi,安装路径是默认指定的,为了方便管理,我们在第6步卸了重装,重新指定安装路径)
-
PCL的OPENNI2卸载了重新安装一下,进入PCL 1.11.1\3rdParty\OpenNI2,如图双击“OpenNI-Windows-x64-2.2.msi”执行卸载
-
执行remove卸载
-
卸载后,再次点击“OpenNI-Windows-x64-2.2.msi”重新安装,安装路径设定到PCL1.11.1\3rdParty\OpenNI2
-
安装完成后如下图,新增文件
(二)、添加PCL的环境变量
-
确认OPENNI2相关环境变量是否自动成功添加
-
参考如下图,添加PCL其它部分环境变量
七、安装Cmake
(一)、安装教程
-
双击“cmake-3.24.0-rc1-windows-x86_64.msi”执行安装。(cmake的版本最好要和VTK版本匹配,不然可能后边会出错)
-
按下图,添加cmake环境变量
-
修改安装路径,然后一路安装到完成。
-
查看安装完成情况,搜索框输入:cmake,如下情况,安装成功。
八、Cmake+Vs2019编译vtk库
(一)、准备工作
-
将VTK-8.2.0.zip复制到非中文路径,并解压
-
在同一目录下新建VTK-install和VTK-prefix目录(VTK-install用于存放CMake预处理后的工程)。
(二)、CMake配置
-
以管理员的身份运行Cmake,文件源为vtk-8.2.0,输出到我们新建的vtk-install里面,按下图设置
-
载弹出的对话框中按如下设置
-
生成完成之后勾选一些需要编译的东西。BUILD里面把BUILD_EXAMPLES打✔,最好不要✔BUILD_TESTING,虽然据说把这个打上勾不会出现可能出现的编译路径错误,但是会大大增加vs编译的时间
-
CMAKE里面在CMAKE_INSTALL_PREFIX的路径,选择为我们之前新建的VTK-prefix文件
-
Module里面勾选vtkGUISupportQt即可
-
VTK里面勾选VTK_Group_QT即可
-
点击configure再次进行编译
-
注意这里的地址一定要同你QT中msvc2017-64/lib/cmake的地址一样,如果你环境变量没问题,这里就不会有问题。
-
再次点击configure,如果全是白色的,就点击Genrate,等待一会儿。
-
生成完成后,点击open project。或者点击vtk-install里面的VTK-sln,此时选择VS2019打开。
(三)、VS2019编译VTK
-
打开VS2019后,将顶部设置为Release和X64。
-
点击左侧ALL BUILD,先点击设为启动项目,再点击生成即可。
-
编译完成如下图,如果编译报错参考:https://blog.csdn.net/wangsen8/article/details/114694211
-
编译完成后,点击执行INSTALL,在vtk-prefix目录下会生成对应文件。
- 以上编译工作完成,会在VTK-prefix目录下生成用户使用的库文件(lib文件夹中)。
九、环境设置
此部分是在VS编译完成后生成了目标VTK相关库(VTK-prefix)的基础上的配置方法介绍。如果在已有编译结果,并且qt5.14.2+VS2019+pcl1.11.1完成配置的情况下,按理说前面的所有步骤都可以跳过,直接从此步骤开始;
-
按下图添加环境变量(前面说了:要将VTK-prefix和VTK-install放到非中文路径)
-
将vtk-prefix中【F:\VTK-prefix\plugins\designer】的QVTKWidgetPlugin.dll放到QT编译器msvc2017_64的文件目录下【D:\Qt\Qt5.14.2\5.14.2\msvc2017_64\plugins\designer】 (提示:此处的vtk-prefix和qt的路径根据自己的情况操作)
-
同理将vtk-install位置【F:\VTK\VTK-install\lib\Release】 的QVTKWidgetPlugin.exp与QVTKWidgetPlugin.lib放到【D:\Qt\Qt5.14.2\5.14.2\msvc2017_64\plugins\designer】 目录下,最终如下图;
-
点击对应编译器msvc2017_64版本目录下【D:\Qt\Qt5.14.2\5.14.2\msvc2017_64\bin】的designer.exe,就可以看到对应的QVTK组件,如下图:
十、vs2019编写demo测试
-
打开VS2019 创建一个Qt Widgets Application(我这里项目名取为:vtk_demo),一直点next即可。
-
选择编译模式Release/x64 ,
-
点击Form Files下的vtk_demo.ui,如果出现无法打开ui文件,则鼠标右键,选择打开方式
-
点击添加,程序选择对应编译器下面的designer.exe【D:\QT\QT5.14.2\5.14.2\msvc2017_64\bin\designer.exe】(根据你自己的路径设置)
-
点击确定即可,选中Qt Designer点击下图设为默认值
-
测试一下,在vtk_demo.ui中添加“QVTKWidget”控件到ui界面中,如下图所示
-
点击保存ui界面后,运行测试,提示如下图错误,找不到QVTKWidget.h头文件,还需继续配置;
-
点击项目右边的属性。
-
在VC++ 目录中,设置包含目录,将路径【D:\VTK-prefix\include\vtk-8.2】放入包含目录。
-
在VC++ 目录中,设置库目录,将路径【D:\VTK-prefix\lib】放入库目录。
-
来到【D:\VTK-prefix\lib】目录下,新建一个libtext.bat文件,输入: DIR *.lib /B >LIBLIST.TXT,双击这个bat会再生成一个LIBLIST.TXT文件。
-
将这个LIBLIST.txt文件中的内容全选复制,来到链接器的输入部分,编辑附加依赖项,将刚才复制的全部放进去,然后点确定。(此步会添加vtk相关的库文件名,pcl相关的库文件名也要添加进去,在十一章会讲);
-
点击应用,然后确定,退出对话框
-
在右侧main.cpp放入我们的测试代码
测试代码如下:
#include <QApplication>
#include <vtkSphereSource.h>
#include <vtkPolyData.h>
#include <vtkSmartPointer.h>
#include <vtkPolyDataMapper.h>
#include <vtkActor.h>
#include <vtkRenderWindow.h>
#include <vtkRenderer.h>
#include <vtkRenderWindowInteractor.h>
#include "vtkAutoInit.h"
VTK_MODULE_INIT(vtkRenderingOpenGL2);
VTK_MODULE_INIT(vtkInteractionStyle);
int main(int argc, char* argv[])
{
vtkSmartPointer<vtkSphereSource> sphereSource = vtkSmartPointer<vtkSphereSource>::New();
sphereSource->SetCenter(0.0, 0.0, 0.0);
sphereSource->SetRadius(5.0);
vtkSmartPointer<vtkPolyDataMapper> mapper = vtkSmartPointer<vtkPolyDataMapper>::New();
mapper->SetInputConnection(sphereSource->GetOutputPort());
vtkSmartPointer<vtkActor> actor = vtkSmartPointer<vtkActor>::New();
actor->SetMapper(mapper);
vtkSmartPointer<vtkRenderer> renderer = vtkSmartPointer<vtkRenderer>::New();
vtkSmartPointer<vtkRenderWindow> renderWindow = vtkSmartPointer<vtkRenderWindow>::New();
renderWindow->AddRenderer(renderer);
vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor = vtkSmartPointer<vtkRenderWindowInteractor>::New();
renderWindowInteractor->SetRenderWindow(renderWindow);
renderer->AddActor(actor);
renderer->SetBackground(.3, .6, .3);
renderWindow->Render();
renderWindowInteractor->Start();
return EXIT_SUCCESS;
}
-
点击编译,发现有错误,如图:
-
解决方法:参考下图把SDL检查关掉,右键->属性
-
将SDL检查设置为“否”,然后点击应用->确定
-
重新编译运行成功
十一、VS搭建点云开发软件工程相关配置。
(一)、说明
通过前面的介绍我们已经初步建立了开发环境,并且也通过编写测试程序展示了运行效果,但是毕竟我编写的程序比较简单,所使用的库也比较少。如果现在你从别人那里拿到一个现成的VS开发的点云工程,需要在你的开发环境中运行起来,还是需要进行一定的修改。因为别人的环境配置参数和你的肯定不同,比如别人用的是vs2015开发的,qt安装路径,vtk库路径和你的不一样,而你拿到手的工程都是保留的按人家环境配置的参数,肯定是无法跑起来的。所以我重新整理了一下一些比较重要的配置关键点供大家参考。
(二)、VS2019软件工程配置要点
1. VC++目录
- 包含目录:
包含目录主要是告诉编译器去哪里寻找头文件(.h 文件)。头文件包含了函数声明、类定义等内容,是 C/C++ 程序编译的基础。假设你在项目中使用了第三方库,三方库的头文件通常位于一个特定的目录下(例如C:\xxx\include),你需要将这个目录添加到包含目录中。这样,当你在代码中包含#include <xxxx/xxx.hpp>这样的语句时,编译器才能找到对应的头文件。在本项目中我们需要将pcl和vtk相关的的包含目录添加进去,主要包含如下:
F:\VTK-prefix\include\vtk-8.2
D:\Program Files\PCL1.11.1\3rdParty\Boost\include\boost-1_74
D:\Program Files\PCL1.11.1\3rdParty\FLANN\include
D:\Program Files\PCL1.11.1\3rdParty\Qhull\include
D:\Program Files\PCL1.11.1\3rdParty\VTK\include\vtk-8.2
D:\Program Files\PCL1.11.1\3rdParty\OpenNI2\Include
D:\Program Files\PCL1.11.1\3rdParty\Eigen\eigen3
D:\Program Files\PCL1.11.1\include\pcl-1.11
如下错误可能是包含路径没有添加(比如:D:\Program Files\PCL1.11.1\3rdParty\Boost\include\boost-1_74没添加)
特点:一般提示无法打开源文件或包含文件,提示没这样的目录或文件
- 库目录:
库目录是用来指定链接器寻找库文件(.lib 文件用于静态链接,.dll 文件用于动态链接)的路径。库文件包含了已经编译好的函数代码,在链接阶段会与你的项目代码合并。比如库文件可能位于C:\xxx\lib目录。你需要将这个目录添加到库目录中。对于静态链接,链接器会在这个目录中寻找.lib文件(如xxx.lib),并将其中的函数代码链接到你的可执行文件中;对于动态链接,虽然程序在运行时才真正加载.dll文件,但链接器也需要知道这些.dll对应的.lib文件(导入库)的位置。在本项目中,我们需要将如下库目录路径添加进去:
F:\VTK-prefix\lib
D:\Program Files\PCL1.11.1\lib
D:\Program Files\PCL1.11.1\3rdParty\Boost\lib
D:\Program Files\PCL1.11.1\3rdParty\FLANN\lib
D:\Program Files\PCL1.11.1\3rdParty\Qhull\lib
D:\Program Files\PCL1.11.1\3rdParty\VTK\lib
D:\Program Files\PCL1.11.1\3rdParty\OpenNI2\Lib
如下报错可能是库目录没有添加:(比如D:\Program Files\PCL1.11.1\3rdParty\Boost\lib没添加)
特点:错误码带有LNK字样
2. QT Project Settings
- Qt Installation
这个步骤是确保项目使用正确的 Qt 库和工具链,如按照前面教程的qt插件配置,这里自动会添加msvc2017_64选项,这里选中即可;
- Qt Modules
这里需要正确勾选项目中使用的modules,如果少了相关模块,会报无法打开Qt相关的文件,提示无相关文件和目录。如下图:缺失widget模块,报错情况。
3. 链接器->输入
- 附加依赖项
前面介绍了VC++目录下的”包含目录“和“库目录”,都是告诉编译器编译时去哪里找需要的库,这里的附加依赖项则是告知链接器在链接过程中需要将哪些具体的.lib 文件与项目的目标文件进行合并,以生成最终的可执行文件或库文件。这些库文件通常包含了项目所依赖的函数、类和其他代码实现,若不指定,链接器将无法找到并链接这些必要的代码,导致生成的程序因缺少所需功能而无法正常运行或出现链接错误,本项目中需要将如下的库添加进去(pcl相关lib+vtk相关lib):
1)、vtk相关的库文件127个(地址:F:\VTK-prefix\lib下所有的.lib文件名)
vtkChartsCore-8.2.lib
vtkCommonColor-8.2.lib
vtkCommonComputationalGeometry-8.2.lib
vtkCommonCore-8.2.lib
vtkCommonDataModel-8.2.lib
vtkCommonExecutionModel-8.2.lib
vtkCommonMath-8.2.lib
vtkCommonMisc-8.2.lib
vtkCommonSystem-8.2.lib
vtkCommonTransforms-8.2.lib
vtkDICOMParser-8.2.lib
vtkDomainsChemistry-8.2.lib
vtkDomainsChemistryOpenGL2-8.2.lib
vtkdoubleconversion-8.2.lib
vtkexodusII-8.2.lib
vtkexpat-8.2.lib
vtkFiltersAMR-8.2.lib
vtkFiltersCore-8.2.lib
vtkFiltersExtraction-8.2.lib
vtkFiltersFlowPaths-8.2.lib
vtkFiltersGeneral-8.2.lib
vtkFiltersGeneric-8.2.lib
vtkFiltersGeometry-8.2.lib
vtkFiltersHybrid-8.2.lib
vtkFiltersHyperTree-8.2.lib
vtkFiltersImaging-8.2.lib
vtkFiltersModeling-8.2.lib
vtkFiltersParallel-8.2.lib
vtkFiltersParallelImaging-8.2.lib
vtkFiltersPoints-8.2.lib
vtkFiltersProgrammable-8.2.lib
vtkFiltersSelection-8.2.lib
vtkFiltersSMP-8.2.lib
vtkFiltersSources-8.2.lib
vtkFiltersStatistics-8.2.lib
vtkFiltersTexture-8.2.lib
vtkFiltersTopology-8.2.lib
vtkFiltersVerdict-8.2.lib
vtkfreetype-8.2.lib
vtkGeovisCore-8.2.lib
vtkgl2ps-8.2.lib
vtkglew-8.2.lib
vtkGUISupportQt-8.2.lib
vtkGUISupportQtSQL-8.2.lib
vtkhdf5-8.2.lib
vtkhdf5_hl-8.2.lib
vtkImagingColor-8.2.lib
vtkImagingCore-8.2.lib
vtkImagingFourier-8.2.lib
vtkImagingGeneral-8.2.lib
vtkImagingHybrid-8.2.lib
vtkImagingMath-8.2.lib
vtkImagingMorphological-8.2.lib
vtkImagingSources-8.2.lib
vtkImagingStatistics-8.2.lib
vtkImagingStencil-8.2.lib
vtkInfovisCore-8.2.lib
vtkInfovisLayout-8.2.lib
vtkInteractionImage-8.2.lib
vtkInteractionStyle-8.2.lib
vtkInteractionWidgets-8.2.lib
vtkIOAMR-8.2.lib
vtkIOAsynchronous-8.2.lib
vtkIOCityGML-8.2.lib
vtkIOCore-8.2.lib
vtkIOEnSight-8.2.lib
vtkIOExodus-8.2.lib
vtkIOExport-8.2.lib
vtkIOExportOpenGL2-8.2.lib
vtkIOExportPDF-8.2.lib
vtkIOGeometry-8.2.lib
vtkIOImage-8.2.lib
vtkIOImport-8.2.lib
vtkIOInfovis-8.2.lib
vtkIOLegacy-8.2.lib
vtkIOLSDyna-8.2.lib
vtkIOMINC-8.2.lib
vtkIOMovie-8.2.lib
vtkIONetCDF-8.2.lib
vtkIOParallel-8.2.lib
vtkIOParallelXML-8.2.lib
vtkIOPLY-8.2.lib
vtkIOSegY-8.2.lib
vtkIOSQL-8.2.lib
vtkIOTecplotTable-8.2.lib
vtkIOVeraOut-8.2.lib
vtkIOVideo-8.2.lib
vtkIOXML-8.2.lib
vtkIOXMLParser-8.2.lib
vtkjpeg-8.2.lib
vtkjsoncpp-8.2.lib
vtklibharu-8.2.lib
vtklibxml2-8.2.lib
vtkLocalExample-8.2.lib
vtklz4-8.2.lib
vtklzma-8.2.lib
vtkmetaio-8.2.lib
vtkNetCDF-8.2.lib
vtkogg-8.2.lib
vtkParallelCore-8.2.lib
vtkpng-8.2.lib
vtkproj-8.2.lib
vtkpugixml-8.2.lib
vtkRenderingAnnotation-8.2.lib
vtkRenderingContext2D-8.2.lib
vtkRenderingContextOpenGL2-8.2.lib
vtkRenderingCore-8.2.lib
vtkRenderingFreeType-8.2.lib
vtkRenderingGL2PSOpenGL2-8.2.lib
vtkRenderingImage-8.2.lib
vtkRenderingLabel-8.2.lib
vtkRenderingLOD-8.2.lib
vtkRenderingOpenGL2-8.2.lib
vtkRenderingQt-8.2.lib
vtkRenderingVolume-8.2.lib
vtkRenderingVolumeOpenGL2-8.2.lib
vtksqlite-8.2.lib
vtksys-8.2.lib
vtktheora-8.2.lib
vtktiff-8.2.lib
vtkverdict-8.2.lib
vtkViewsContext2D-8.2.lib
vtkViewsCore-8.2.lib
vtkViewsInfovis-8.2.lib
vtkViewsQt-8.2.lib
vtkzlib-8.2.lib
2)、pcl相关库文件40个(地址:D:\Program Files\PCL1.11.1\lib下所有的.lib文件)
pcl_common.lib
pcl_commond.lib
pcl_features.lib
pcl_featuresd.lib
pcl_filters.lib
pcl_filtersd.lib
pcl_io.lib
pcl_iod.lib
pcl_io_ply.lib
pcl_io_plyd.lib
pcl_kdtree.lib
pcl_kdtreed.lib
pcl_keypoints.lib
pcl_keypointsd.lib
pcl_ml.lib
pcl_mld.lib
pcl_octree.lib
pcl_octreed.lib
pcl_outofcore.lib
pcl_outofcored.lib
pcl_people.lib
pcl_peopled.lib
pcl_recognition.lib
pcl_recognitiond.lib
pcl_registration.lib
pcl_registrationd.lib
pcl_sample_consensus.lib
pcl_sample_consensusd.lib
pcl_search.lib
pcl_searchd.lib
pcl_segmentation.lib
pcl_segmentationd.lib
pcl_stereo.lib
pcl_stereod.lib
pcl_surface.lib
pcl_surfaced.lib
pcl_tracking.lib
pcl_trackingd.lib
pcl_visualization.lib
pcl_visualizationd.lib
如下报错可能是附加依赖项没有添加:(比如:pcl相关库文件没添加)
特点:错误码为LNK2001,提示无法解析外部符号
(三)、其它问题
- 提示:找不到“vtkGUISupportQt-8.2.dll”,如下图;
解决办法1:将“F:\VTK-prefix\bin“目录下的vtkGUISupportQt-8.2.dll复制到“D:\Qt\Qt5.14.2\5.14.2\msvc2017_64\bin”目录下(推荐);
解决办法2:将“F:\VTK-prefix\bin“目录下的vtkGUISupportQt-8.2.dll复制到源码编译路径下,比如“vtk_demo\x64\Release”目录下;
十二、结语
- 总结
以上就是VS2019+Qt5.14.2+PCL1.11.1+VTK-8.2.0环境配置的总体情况,总体来看还是比较繁琐的。如果一步一步的弄,还是需要花费相当多的时间的。个人觉得只要有现成的,已经编译好的vtk库直接用就行了,没必要用CMake+VS自己编一套。后续我会在另外一台电脑上直接使用我编译好的vtk来开发软件。
- 下面附上我自己写的一个软件显示点云的效果:
原文地址:https://blog.csdn.net/hs977986979/article/details/144798088
免责声明:本站文章内容转载自网络资源,如侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!