【踩坑记录】ubuntu20.04源码编译安装最新版PCL1.13.0踩坑记录之vtkMutexLock.h找不到

文章讲述了在Ubuntu20.04中使用PCL时遇到的VTK版本问题,发现PCL1.13.0需要9.2.20220622及更早版本的VTK,而新版本如9.3.0缺少必要头文件。作者通过Windows上的PCL安装确认了VTK版本,并成功编译PCL9.2.0。
摘要由CSDN通过智能技术生成

VTK版本问题

PCL依赖于VTK库,ubuntu20.04通过apt安装的VTK共有两种可选版本,一个是6.3,一个是7.1,这两个版本对PCL1.13来说都太老了。
在这里插入图片描述

于是去VTK官网上下载最新版本的VTK安装,目前官方最新版本是9.3.0.RC1,这是一个候选版本,下载编译安装过程略过不表。

在这里插入图片描述
安装完VTK库之后安装PCL,前面编译一切顺利,但是在outofcore模块编译时提示找不到vtkMutexLock.h。在VTK代码下搜索这个文件,果然没有找到。于是google一通,终于找到了该文件,在VTK 9.2.20220622版本的source里有这个文件,但是在VTK 9.2 20230601版本的source里就找不到这个文件了。
9.2 20220622版本里可以找到这个文件
在这里插入图片描述
可以得出结论,PCL 1.13.0用的是9.2 20220622版本或者之前版本的VTK,其中vtkMutexLock.h这个头文件在后续的某次版本更新里被去掉了,因此用后面的版本编译会缺少文件。要安装成功的话要么重新装对应版本的VTK,要么在编译PCL的时候跳过outofcore这个模块。
为了确定PCL使用的VTK版本,下载了一个windows版本的PCL,安装之后查看3rdParty文件夹里的VTK版本。

在这里插入图片描述
windows下PCL的安装包自带的VTK为9.2,VTK官网不提供这个版本,需要访问VTK的git仓库来找对应版本的source code。
VTK的git仓库,可能要挂代理
在这里插入图片描述
git仓库里的9.2还有很多小版本,根据之前找到vtkMutexLock.h的时间在20220622,选择了一个时间差不多的版本9.2.0下载下来,卸载掉之前安装的9.3,安装9.2.0之后再次尝试编译PCL,经过漫长的等待。
在这里插入图片描述
在这里插入图片描述

编译成功!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值