页次: 1
opencv昨天还好好的,可以正常编译和运行程序。今早手贱把arch更新了,然后编译程序的时候,出现一下错误:
$ g++ `pkg-config --cflags --libs opencv` -o BagOfWords BagOfWords.cpp
/usr/bin/ld: warning: libavutil.so.51, needed by /usr/local/lib/libopencv_highgui.so, not found (try using -rpath or -rpath-link)
/usr/local/lib/libopencv_highgui.so:对‘av_freep@LIBAVUTIL_51’未定义的引用
/usr/local/lib/libopencv_highgui.so:对‘av_sub_q@LIBAVUTIL_51’未定义的引用
/usr/local/lib/libopencv_highgui.so:对‘av_log_set_level@LIBAVUTIL_51’未定义的引用
/usr/local/lib/libopencv_highgui.so:对‘av_rescale_q@LIBAVUTIL_51’未定义的引用
/usr/local/lib/libopencv_highgui.so:对‘av_free@LIBAVUTIL_51’未定义的引用
/usr/local/lib/libopencv_highgui.so:对‘av_malloc@LIBAVUTIL_51’未定义的引用
collect2: 错误:ld 返回 1
find了一下,系统里面确实也找不到libavutil.so.51这个文件,在wiki上也找不到。这个文件好像是和ffmpeg有关的。在网上找了个链接
“http://www.openmamba.org/download.html?file=/pub/openmamba/devel/RPMS.x86_64/libavutil-ffmpeg-0.10.3-1mamba.x86_64.rpm”
里面有libavutil.so.51这个文件,但是不知道能不能直接用。。。
请问各位,这个问题如何解决呢?先谢了~~~
离线
Opencv 自己编译的还是装源里面的?
如果是自己装的试试重新编译,如果是官方源里面的可以报bug要求维护者重新编译
ffmpeg 升级修改 libavutil.so 版本号,就是向使用它的所有程序说:我和以前不二进制兼容了,请重新编译
官方源里面有 so 版本升级,都应该触发依赖它的软件包重新编译,发布新的版本。
离线
Opencv 自己编译的还是装源里面的?
如果是自己装的试试重新编译,如果是官方源里面的可以报bug要求维护者重新编译ffmpeg 升级修改 libavutil.so 版本号,就是向使用它的所有程序说:我和以前不二进制兼容了,请重新编译
官方源里面有 so 版本升级,都应该触发依赖它的软件包重新编译,发布新的版本。
太感谢了,重新编译一下opencv就解决了,真心受教了~~
离线
Arch一般还是用源里的比较方便,足够新。
另外建议不要在周一至周五升级,影响到正常的学习/工作就不好了。个人每周五晚上升级一次,留足够的解决问题时间。
离线
页次: 1