vs2013+qt5.7.0+vtk8.0编译

前言

PCL1.8.1安装包有编译好的VTK库,那为什么还要单独安装VTK呢?是由于预编译的vtk包并没有和qt进行编译得到QVTKWidget控件(该控件用来在qt上进行显示点云),因此需要下载VTK-8.0(必须是该版本,因为pcl1.8.1-allinone包之前编译使用的是该版本)

准备

链接:https://pan.baidu.com/s/1_FRj2CULzTGW4f1uRRiMWA  提取码:hkos 

下载之后新建一个build文件夹用于构建vtk,如下图

编译VTK


(1)编译VTK库文件

将下载好的VTK-8.0解压到3rdParty\下,在VTK-8.0里新建build文件夹,并清空PCL自带的VTK文件夹的内容,使用CMAKE进行相应的设置。
where is the source code 为你的VTK-8.0的路径
where to build the binaries 为VTK-8.0里build的路径

第一次点击configure,等configure完成之后勾选Grouped和Advanced,进行以下设置:

  1. BUILD下取消勾选BUILD_TESTING
  2. CMAKE下CMAKE_INSTALL_PREFIX设置为你清空的VTK文件夹
  3. VTK下勾选VTK_Group_Qt
  4. VTK_RENDERING_BACKEND设置为OpenGL(这里一定要注意,否则pcl显示框会出错)
  5. 点击Add Entry,添加CMAKE_DEBUG_POSTFIX,Value设置为-gd(用来区别debug和release版本)

再次点击configure,如无error,点击Genrate。

直接点击open project可以打开项目,也可以进入到build目录下,使用VS打开VTK.sln

  1. 首先Debug x64下,右键ALL_BUILD生成,再右键INSTALL生成;
  2. 然后Release x64下,右键ALL_BUILD生成,再右键INSTALL生成;

      将3rdParty\VTK\plugins\designer下的QVTKWidgetPlugin.dll拷贝到QT\5.7\msvc2015_64\plugins\designer下,这样Qt里面就有了QVtk的控件了。
      然后不要忘了将上面的PCL VTK库文件目录改成自己命名或者生成的库文件夹名字,Debug和release都需要.

错误1:

在编译好之后发现很多的错误

折腾了很久,终于在晚上10点,看到一篇博文,这就是链接的问题,原来的链接库不完全,找到lib文件下。

解决办法:

1、新建一个text,加入下面的这段代码

@echo off
for %%I in (*.lib) do echo %%I>>all.txt
for %%I in (*debug.lib) do echo %%I>>adebug.txt
for %%I in (*release.lib) do echo %%I>>arelease.txt
pause

2、后缀改成.bat,双击运行,会产生一个all.text

3、将all.text中内容复制到链接属性表去,再次编译就可以通过

 

错误2:QWidget: Must construct a QApplication before a QWidget

在我以为大公告成的时候,还是出现了一个错误

解决办法:

这是由于lib文件链接混乱导致出错,将生成的release版本lib文件和debug下的文件分开链接,修改了链接库就解决这个问题了。

 

参考:

https://blog.csdn.net/Fengyueshengqi/article/details/80619006

https://blog.csdn.net/qinlele1994/article/details/91794927

https://blog.csdn.net/limj1987/article/details/78747093

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值