pcl dll load failed: 找不到指定的模块。_Python-PCL编译问题 终极解决方案

这篇文章总结了python-pcl编译过程中可能遇到的各种坑, 以及可行的解决方案.python-pcl正常的编译参考github repo的文档strawlab/python-pcl问题类型1 编译过程中出现 fatal error: vtkObjectBase.h: No such file or directory这是由于python-pcl本身的bug导致的. python-pcl默认...
摘要由CSDN通过智能技术生成

9ea4ff3716970d5d257f016233a14077.png

这篇文章总结了python-pcl编译过程中可能遇到的各种坑, 以及可行的解决方案.

python-pcl正常的编译参考github repo的文档strawlab/python-pcl

问题类型1 编译过程中出现 fatal error: vtkObjectBase.h: No such file or directory

这是由于python-pcl本身的bug导致的. python-pcl默认vtk是安装在/usr/lib下, 因此它就把查找vtk的头文件和库文件的路径写死在setup.py里了;

但是, 大多数人在编译pcl(原生c++版本)的时候, 都是按照官网教程, 把vtk安装到/usr/local/lib里(或者其他的某些你自己指定的路径下), 这个时候setup.py找不到vtk就会报上边的这个错误.

解决方法:

修改setup.py, 找到https://github.com/strawlab/python-pcl/blob/1d83d2d7ce9ce2c22ff5855249459bfc22025000/setup.py#L729 这几行 (这里以pcl 1.8为例, 具体改哪个if分支要按照你本机上的pcl版本决定),

假如你的vtk的库文件安装到了/usr/local/lib中, 头文件安装到了/usr/local/include中, 那么就把原来的

        elif pcl_version == '-1.8':
            # pcl 1.8.0/1?(Ubuntu 18.04)(melodic)
            vtk_version = '7.0'
            # pcl 1.8.1?
            # vtk_version = '8.0'
            vtk_include_dir = os.path.join('/usr/include/vtk-' + vtk_version)
            vtk_library_dir = os.path.join('/usr/lib')

改成

        elif pcl_version == '-1.8':
            # pcl 1.8.0/1?(Ubuntu 18.04)(melodic)
            vtk_version = '7.0'
            # pcl 1.8.1?
            # vtk_version = '8.0'
            # 改下边这两个路径
            vtk_include_dir = os.path.join('/usr/local/include/vtk-' + vtk_version)
            vtk_library_dir = os.path.join('/usr/local/lib')

然后重新编译python-pcl即可.

问题类型2 编译过程中出现 cannot find -lvtk XXXXXXXXX

问题表现为, 在编译快结束的链接过程中, 出现以下链接错误并编译失败(注意后边的-7.0可能是8.0或者其他版本号, 取决于你本机环境).

cannot find -lvtkalglib-7.0
canno
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值