OPenCV make过程中的错误:invalid use of incomplete type ‘class vtkTexture’

我的环境是ubuntu1804+pcl1.9.1+opencv3.1.0,为了解决该错误,又装了一个opencv3.4.8,现在是两个opencv共存的状态。

最近在学习高翔博士的SLAM十四讲,在运行第九讲0.2工程时,需要安装VIZ模块,这个模块是在opencv库cmake时可选的,我就回去重新cmake了一次,结果提示错误:invalid use of incomplete type ‘class vtkTexture’。

为了解决这个错误,我试过以下办法

1.卸载VIZ8.2版本,装VIZ6.3版本。无效

2.重装OPencv3.1.0。提示错误:

invalid use of incomplete type ‘class vtkTexture’

3.根据错误,将对应版本的vtkTexture头文件放置到提示的文件夹。无效

在多次尝试后,确定安装opencv3.4.8对我是有效的,这里不建议装opencv4的版本,因为高翔博士书上写的很清楚,他的代码是运行在opencv3版本下的。

多版本opencv安装的步骤

在此之前,如果你也是运行SLAM第九讲0.2的工程,请先安装VTK8.2.0

1.当前opencv安装路径一般在/usr/local,所以要新建一个目录,防止覆盖安装,我新建的目录地址为/usr/opencv3.4.1

2.将下载好的opencv3.4.8解压至文件夹,我解压到文件夹 /home/qch/Data/Tools/library_file/opencv-3.4.8

3.接下来就是熟悉的cmake环节,cmake-gui的用法不会的请百度,很简单

mkdir build
cd build
cmake-gui    #调用cmake-gui进行编译

CMAKE_INSTALL_PREFIX是要安装在哪个路径,需要修改,我的安装路径是/usr/opencv3.4.8

WITH_VTK=ON是开启VTK模块,因为我就是要用VTK模块才装的opencv3.4.8,所以开启

4.熟悉的make环节

sudo make
sudo make install

至此,opencv3.4.8版本安装完成,现在系统中存在3.1.0和3.4.8两个版本,接下来就是如何切换这两个版本

多版本opencv的切换

1.打开bashrc文件

gedit ~/ .bashrc

2.在文末增加内容,然后保存退出

export PKG_CONFIG_PATH=/usr/opencv3.4.8/lib/pkgconfig
export LD_LIBRARY_PATH=/usr/opencv3.4.8/lib
//如果不用这个opencv版本了,就把这两句删除,然后再更新一下bashrc就行了

上面这两个路径是你的安装路径,而不是解压路径,请替换成你的

3.更新bashrc文件

source ~/ .bashrc

可能会提示你XXX是一个目录,不用理会,只要上面第2步保存退出就行了

4.至此,opencv版本就切换到3.4.8了,输入以下命令查询版本

pkg-config --modversion opencv

接下来在你需要运行的程序CMakeLists中,指定opencv版本就行了

cmake_minimum_required(VERSION 2.8)

set(OpenCV_DIR "/home/qch/Data/Tools/library_file/opencv-3.4.8/build")     
//这里是解压路径,不是安装路径 

project(test)  
find_package(OpenCV REQUIRED) 

参考的博客:https://blog.csdn.net/learning_tortosie/article/details/80594399

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值