Linux在提供了及其强大的功能和自由度 的同时,其繁琐的库依赖和维护有时确实是件非常头疼的事情。
花了一下午从Ubuntu 9.04升级到9.10,升级本身很快,没有遇到大的问题。但重新编译项目工程时,仍然试图链接libdc1394_control.so.13和 libraw1394.so.8。
很早以前给项目写过1394的driver,当时正好是libdc1394库从1.0升级到2.0。所以记得libdc1394_control好像是1.0下的名字。而升级过程中明确告知libdc1394-13和libraw1394-8被删除了。从错误信息看其实是opencv的 highgui需要用到1394,而升级前又一直用的是opencv1.1,所以抱怨找不到V1中的函数,比如dc1394_get_min_value
Solution:
1。删除opencv 1.1
2。编译/安装opencv 2.1
但是。。。。
因为libdc1394-v1在升级过程中没有删除干净,留了几个文件在/usr/local/lib/下:
libdc1394.a
libdc1394.la
libdc1394.so.22
libdc1394.so.22.0.0
opencv2.1总是先找到/usr/local/下的库,自然没有v2中定义的函数,比如dc1394_capture_is_frame_corrupt
把local下的文件改名后,opencv2.0通过了&#