问题
报错如下:
/usr/lib/x86_64-linux-gnu/libopencv_imgcodecs.so.3.2.0: undefined reference to `TIFFReadDirectory@LIBTIFF_4.0'
/opt/ros/melodic/lib/libresource_retriever.so: undefined reference to `curl_global_init@CURL_OPENSSL_4'
本次出现问题的so列表如下:
- libresource_retriever.so
- libopencv_imgcodecs.so
- libuuid.so
出现问题的原因
是由于ros和anaconda的兼容问题引起的,ros编译出现这种错误均可用该套路解决
解决方法
locate libopencv_imgcodecs.so //定位so的位置
ldd /usr/lib/x86_64-linux-gnu/libopencv_imgcodecs.so //查看依赖的so
locate libtiff.so.5 //定位出问题so的路径
sudo mv /home/zhangqb/ProgramFiles/anaconda3/lib/libtiff.so.5 /home/zhangqb/ProgramFiles/anaconda3/lib/temp //将anaconda库中的软连接删除并备份
sudo ln -s /lib/x86_64-linux-gnu/libtiff.so.5 /home/zhangqb/ProgramFiles/anaconda3/lib/libtiff.so.5 //新建一个软链接并链接到ros库中