1. 写在前面
两个师兄对实验室的一个程序进行了不同程度的优化,一个主要用opencv3,另一个主要用opencv2
.我为了能够跑这两个程序,在自己电脑上装了两个版本的opencv(opencv2.4.13和opencv3.4.10)
,同时参考了多版本opencv切换的教程,结果就悲剧了…
教程写的很详细,我的问题就出现在"环境配置"这里,我按照教程修改了文件/etc/ld.so.conf.d/opencv.conf
和文件/etc/bassh.bashrc
,导致系统的环境系统环境发生变化,找不到opencv
的函数等.
对'cvWaitKey'未定义的引用
对'cvNamedWindow'未定义的引用
对'cvShowImage'未定义的引用
2. 将环境配置改回去
问了实验室师兄,说我是不是把环境变量给改了,我于是把修改的地方改回去.
2.1 改/etc/ld.so.conf.d/opencv.conf
文件
sudo gedit /etc/ld.so.conf.d/opencv.conf
删除:/usr/local/lib或/usr/local/opencv/opencv3.2.0/lib等自己为了opencv多版本增加的语句,或者直接注释
保存并关闭文件
sudo ldconfig
2.2 改/etc/bash.bashrc
文件
sudo gedit /etc/bash.bashrc
注释或删除自己因为安装opencv添加的语句,如:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
保存并关闭文件
source /etc/bash.bashrc
[此时可能会进入root用户,只需再输一遍:source /etc/bash.bashrc即可]
最后更新一下配置:
sudo updatedb
** 实践验证**
先用catkin build
编译一下程序,结果仍是报错,如下图
然后想着catkin_make_isolated --instal
相较于catkin build
来说不是很严格,于是就用catkin_make_isolated --install
试试(试错的时间成本太高了,这个程序我都搞了很多天了)
结果编译成功了,也成功跑出了速腾官网的pacp包.
@meng