视觉slam十四讲中第十一章libopencv_core问题:
在运行feature_training.cpp时,报错:
ss/usr/bin/ld: warning: libopencv_core3.so.3.3, needed by /usr/local/lib/lib
搜寻了好久大致有以下几种解决方案:
1.把该文件所在的目录放到linux动态库链接文件中:
sudo gedit /etc/ld.so.conf
输入路径:
include /usr/local/lib
终端:
sudo ldconfig
2.如果还不行的话,反正我试了是不行,然后在文件里搜索这个文件,发现他在在/opt/ros/kinetic/lib/x86_64-linux-gnu/文件夹里,ros???我才发现原来ros有自带的open,而且还是3版本的,于是就想着能不能直接在cmakelist里直接链接到ros自带的opencv,找到了一下两种解决方案:
https://blog.csdn.net/zhi_neng_zhi_fu/article/details/99818339
https://blog.csdn.net/jw123545/article/details/83023123
但最后都没有用,所以只能采用了方法三:
3.暴力转移法:
sudo cp /opt/ros/kinetic/lib/x86_64-linux-gnu/libopencv_* /user/lib
对,没有的我给你移过去,就是这么暴力,但是成功了。。。。。。
对了,是受到这篇文章的启发:
https://blog.csdn.net/Imkiimki/article/details/95392279
文章中是转移到了/opt/ros/kinetic/lib路径下,然后把该路径放到/etc/ld.so.conf中,但是我没有成功,于是直接放到默认的路径了。
当然如果你前两种方案能够成功的话,不建议你直接用第三种,毕竟它。。太暴力
至此,折磨了我两天的问题终于结束了,期间真的心态崩溃过好多次,搜寻过一万种解决方案,但最后依旧是那个报错。总之希望自己下次遇到这种头疼的问题时能够静下心来,仔细的搜索每一种可能,心态真的很重要!
上一篇: 检测一个字符串是否在jvm的常量池中
下一篇: Linux Shell 编程实战技巧