opencv_ros报错、记录xxx安装中undefined reference to `ffi_type_uint8@LIBFFI_BASE_7.0 错误

参考:
记录opencv4.4安装中undefined reference to `ffi_type_uint8@LIBFFI_BASE_7.0 错误 - 知乎
opencv_ros报错-CSDN博客

方法1:

为了解决此错误直接在终端输入命令:

$: sudo ln -s /lib/x86_64-linux-gnu/libffi.so.7.1.0 libffi.so.7 && ldconfig

如果操作后依然报错。直接操作:

$: rm -rf devel

$: rm -rf build

因为可能缓存文件会影响编译。
具体报错情况:
/usr/bin/ld: /lib/x86_64-linux-gnu/libp11-kit.so.0: undefined reference to ffi_closure_alloc@LIBFFI_CLOSURE_7.0' /usr/bin/ld: /lib/x86_64-linux-gnu/libp11-kit.so.0: undefined reference toffi_prep_closure_loc@LIBFFI_CLOSURE_7.0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libp11-kit.so.0: undefined reference to ffi_type_uint8@LIBFFI_BASE_7.0' /usr/bin/ld: /lib/libgdal.so.26: undefined reference toTIFFReadRGBATileExt@LIBTIFF_4.0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libwayland-client.so.0: undefined reference to ffi_type_void@LIBFFI_BASE_7.0' /usr/bin/ld: /lib/x86_64-linux-gnu/libwayland-client.so.0: undefined reference toffi_prep_cif@LIBFFI_BASE_7.0'
/usr/bin/ld: /lib/libgdal.so.26: undefined reference to TIFFReadRGBAStripExt@LIBTIFF_4.0' /usr/bin/ld: /lib/x86_64-linux-gnu/libwayland-client.so.0: undefined reference toffi_type_uint32@LIBFFI_BASE_7.0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libwayland-client.so.0: undefined reference to ffi_type_sint32@LIBFFI_BASE_7.0' /usr/bin/ld: /lib/x86_64-linux-gnu/libwayland-client.so.0: undefined reference toffi_call@LIBFFI_BASE_7.0'
/usr/bin/ld: /lib/x86_64-linux-gnu/libwayland-client.so.0: undefined reference to ffi_type_pointer@LIBFFI_BASE_7.0' /usr/bin/ld: /lib/x86_64-linux-gnu/libp11-kit.so.0: undefined reference toffi_type_uint64@LIBFFI_BASE_7.0'
collect2: error: ld returned 1 exit status
make[2]: *** [darknet_ros/darknet_ros/CMakeFiles/darknet_ros.dir/build.make:226:/home/dell/catkin_ws/devel/lib/darknet_ros/darknet_ros] 错误 1
make[1]: *** [CMakeFiles/Makefile2:3643:darknet_ros/darknet_ros/CMakeFiles/darknet_ros.dir/all] 错误 2
make: *** [Makefile:141:all] 错误 2
当进行catkin_make报错出现上述错误,这个错误是由于python版本出现了错误(可以认为是新的python,把对应的需要的文件的链接给占用了)

为了解决此错误直接在终端输入命令:

$: sudo ln -s /lib/x86_64-linux-gnu/libffi.so.7.1.0 libffi.so.7 && ldconfig

如果操作后依然报错。直接操作:

$: rm -rf devel

$: rm -rf build

因为可能缓存文件会影响编译。

方法2:

因为装了conda 所以会和QT有冲突,将bashrc中的 conda路经注释掉,再重新编译。

step1 vim ~/.bashrc

step2 注释调包含conda路径PATH,如PATH=PATH:/home/anaconda3/bin

step3 保存退出 source ~/.bashrc

step4 重新开个命令窗口再编译~~~ ,注意这一点。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容