「已解决」ImportError: /lib/x86_64-linux-gnu/libp11-kit.so.0: undefined symbol: ffi_type_pointer, version

问题描述

Conda虚拟环境中遇到的ROS相关代码运行错误,在调用CvBridge时遇到:

[ERROR] [1726660752.565442]: bad callback: <function image_callback at 0x7f843bbb27a0>
Traceback (most recent call last):
  File "/opt/ros/noetic/lib/python3/dist-packages/rospy/topics.py", line 750, in _invoke_callback
    cb(msg)
  File "/root/catkin_ws/src/octo/main_inference.py", line 39, in image_callback
    cv_img = bridge.imgmsg_to_cv2(msg, "bgr8")
  File "/opt/ros/noetic/lib/python3/dist-packages/cv_bridge/core.py", line 163, in imgmsg_to_cv2
    dtype, n_channels = self.encoding_to_dtype_with_channels(img_msg.encoding)
  File "/opt/ros/noetic/lib/python3/dist-packages/cv_bridge/core.py", line 99, in encoding_to_dtype_with_channels
    return self.cvtype2_to_dtype_with_channels(self.encoding_to_cvtype2(encoding))
  File "/opt/ros/noetic/lib/python3/dist-packages/cv_bridge/core.py", line 91, in encoding_to_cvtype2
    from cv_bridge.boost.cv_bridge_boost import getCvType
ImportError: /lib/x86_64-linux-gnu/libp11-kit.so.0: undefined symbol: ffi_type_pointer, version LIBFFI_BASE_7.0

原因及解决方案

cv_bridge 默认依赖于 libffi.8 库,而不是 libffi.7。由于这两个版本的 libffi 库存在冲突,导致 cv_bridge 无法正常工作。为了解决这个问题,你需要删除旧版本的 libffi.7 库文件。

rm ${CONDA_PREFIX}/lib/libffi.7.so
rm ${CONDA_PREFIX}/lib/libffi.so.7
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值