vs+qt+vtk+pcl+cmake下载、安装、配置以及过程中存在的一系列问题解决

1、下载

本教程使用的版本:vs2022+qt5.9.9+vtk8.1.0+pcl1.9.0+cmake3.26.1

!!!特别注意:请读者务必保证vtk与pcl中的vtk版本一致(pcl1.9.1对应vtk8.1.0      pcl1.8.1对应vtk8.0.0),不然最后会报错,博主已经踩过这个坑,vtk8.2.0与pcl1.9.0不匹配,会报以下错误:0x00007FFCAED85E08 (ucrtbased.dll)处(位于 cowapp.exe 中)引发的异常: 0xC0000005: 读取位置 0x0000000000000035 时发生访问冲突。

这里给出vtk8.1.0以及pcl1.9.0的程序包,vs以及qt还有cmake可以去官网下载,或者去其他博客寻找网盘版

vtk8.1.0:

链接:百度网盘 请输入提取码 
提取码:bkqy

pcl1.9.0

链接:https://pan.baidu.com/s/1lDhAwdo58VvxqiqHIfPceg

提取码:s539

2、安装

作者很久以前就安装了,过程已不记得,可以去参考其他博客。其实vtk与pcl不用安装,直接下载下来解压,之后配置进vs项目即可。所以只需要安装vs、Qt、cmake(编译vtk)。

3、配置

3.1 cmake编译vtk

首先在c盘(选择你自己空间大的盘)下新建一个文件夹,命名为vtk,然后在该vtk文件夹下新建五个文件夹,如图所示:

        vs+qt+vtk+pcl+cmake下载、安装、配置以及过程中存在的一系列问题解决_第1张图片

 请将你解压后的vtk包剪切进vtk_src里面,如图:

vs+qt+vtk+pcl+cmake下载、安装、配置以及过程中存在的一系列问题解决_第2张图片

 以管理员方式打开cmake(避免出错,尽量用管理员方式打开),如图所示。其中源vtk路径是CMakeLists.txt所在的路径。这里作者换在了new_vtk文件夹下,因为作者的vtk文件夹下都是编译好的,不想破坏,就新建了一个给大家演示

vs+qt+vtk+pcl+cmake下载、安装、配置以及过程中存在的一系列问题解决_第3张图片

 进入以下界面:

vs+qt+vtk+pcl+cmake下载、安装、配置以及过程中存在的一系列问题解决_第4张图片

 点击完成,开始编译,等待大约半个小时

编译完后,出现红色,这个需要我们去配置一些会用的东西,主要勾选有:

BUILD下:一定选择BUILD_TESTING,不然后面vs生成可能会报错

vs+qt+vtk+pcl+cmake下载、安装、配置以及过程中存在的一系列问题解决_第5张图片

 CMAKE下:重新选择路径如下

vs+qt+vtk+pcl+cmake下载、安装、配置以及过程中存在的一系列问题解决_第6张图片

 TVK下:勾选使用Qtvs+qt+vtk+pcl+cmake下载、安装、配置以及过程中存在的一系列问题解决_第7张图片

 选择完后,再次点击configure,等待完成

这次再一次出现红色,不用怕,这是要我们配置Qt,因为我们在上一步勾选了Qt

在Ungrouped Entries下将Qt5配置好

vs+qt+vtk+pcl+cmake下载、安装、配置以及过程中存在的一系列问题解决_第8张图片

 在VTK下设置Qt版本为5

vs+qt+vtk+pcl+cmake下载、安装、配置以及过程中存在的一系列问题解决_第9张图片

 配置完后,继续点击configure,等完成后,不会出现红色。

 ​​​​​​vs+qt+vtk+pcl+cmake下载、安装、配置以及过程中存在的一系列问题解决_第10张图片

最后点击Generate即可完成

 以管理员方式打开vtk_build下的VTK.sln到vs2022中,右击ALL_BUILD,点击生成,过程比较慢,需要1~2小时,这个生成需要在debug与release下各执行一次

vs+qt+vtk+pcl+cmake下载、安装、配置以及过程中存在的一系列问题解决_第11张图片

 然后选择debug模式,右击INSTALL,点击生成:

vs+qt+vtk+pcl+cmake下载、安装、配置以及过程中存在的一系列问题解决_第12张图片

 生成完之后全都放在vtk_res下,此时,将vtk_res下的所有内容都剪切到vtk_debug文件夹下

然后,在vs中选择release模式,继续生成INSTALL。将生成后的全复制到vtk_release文件夹下

到此,完成vtk编译。

3.2测试vtk是否编译成功

用vs打开vtk_build下的VTK.sln,点击解决方案资源管理器,右击Cube,设置为启动项目,然后运行Cube.cxx,效果如下

vs+qt+vtk+pcl+cmake下载、安装、配置以及过程中存在的一系列问题解决_第13张图片

vs+qt+vtk+pcl+cmake下载、安装、配置以及过程中存在的一系列问题解决_第14张图片

 说明vtk编译成功!!!

4、新建Qt项目,配置pcl,vtk

 Qt安装不需要过多解释,不过还需要在vs中配置Qt

Qt下载安装以及vs2022中配置Qt可以参考一下博客:C++图形化界面框架Qt的下载与安装,vs中安装并使用Qt插件_c++ qt下载_ych什么都不会的博客-CSDN博客

 新建一个如下的Qt项目

vs+qt+vtk+pcl+cmake下载、安装、配置以及过程中存在的一系列问题解决_第15张图片

 下面的步骤默认即可

在项目的属性管理器中,在debugx64下新建一个名为vtk_debug属性表,将vtk_debug文件夹下bin目录配置进环境变量,include目录配置进包含目录,lib配置进库目录,将lib下所有文件名复制进连接器下的附加依赖项,完成!

在releasex64下新建一个vtk_release属性表,将vtk_release文件夹下bin,目录配置进环境变量,include目录配置进包含目录,lib配置进库目录,将lib下所有文件名复制进连接器下的附加依赖项,完成!

vs+qt+vtk+pcl+cmake下载、安装、配置以及过程中存在的一系列问题解决_第16张图片

 

 注意:vtk_release与vtk_debug下的bin只能有一个配置进全局变量,如果两个同时配置进全局变量,则后面的bin没有作用

至此,vtk在Qt中配置完成!!!

pcl配置进Qt项目读者请参考其他博客,就是在debugx64与releasex64下分别新建pcl_debug与pcl_release属性表,然后分别配置包含目录、库目录、附加依赖项即可。

pcl配置过程中出现了问题,可以参考这篇博客:

c++安装PCL库的下载以及运行存在的一系列问题解答_c++ pcl库_ych什么都不会的博客-CSDN博客

注意:pcl中的vtk不用改动,因为pcl1.9.0中的vtk为8.1.0,与Qt中配置的vtk版本一致

然后需要在Qt的ui界面中配置vtkWidget控件,如下:

1、把C:\VTK\vtk_build\lib\Release下的QVTKWidgetPlugin.exp、QVTKWidgetPlugin.lib,C:\VTK\vtk_build\bin\Release下的QVTKWidgetPlugin.dll复制进C:\Qt\Qt5.9.9\5.9.9\msvc2017_64\plugins\designer

vs+qt+vtk+pcl+cmake下载、安装、配置以及过程中存在的一系列问题解决_第17张图片

 此时,在Qt的ui界面中就可以添加vtk控件

vs+qt+vtk+pcl+cmake下载、安装、配置以及过程中存在的一系列问题解决_第18张图片

 在Qt项目中添加vtk控件后,必须在Qt框架代码中添加如下代码:

#include

#include
VTK_MODULE_INIT(vtkRenderingOpenGL2);
VTK_MODULE_INIT(vtkInteractionStyle);

到此为止,你的Qt项目中配置了vtk、pcl,已经可以成功运行,效果如下(这是博主做好的一个成品):

vs+qt+vtk+pcl+cmake下载、安装、配置以及过程中存在的一系列问题解决_第19张图片

 vs+qt+vtk+pcl+cmake下载、安装、配置以及过程中存在的一系列问题解决_第20张图片

 有问题可以留言!

你可能感兴趣的:(qt,开发语言)