我正在尝试使用makefile编译给定的源代码,但我面临的问题是它使用了libavcodec.so.53。安装的版本是54,libavutil和libavformat版本也不同于Linux版本。我无法在Linux中更改它们的版本,因为我没有root权限。所以我将使用opencv,libavutil.so,libavformat.so和libavcodec.so.53所在的本地文件夹。
我将此文件夹名称放入makefile.config中,如下所示:
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /home/me/lib
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/local /home/me/lib
但是当我编译它时,我有以下错误:
/usr/bin/ld: warning: libavcodec.so.53, needed by
/home/anselmo/lib/lib/libopencv_highgui.so, not found (try using -
rpath or -rpath-link)
/usr/bin/ld: warning: libavformat.so.53, needed by
/home/me/lib/libopencv_highgui.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libavutil.so.51, needed by
/home/me/lib/libopencv_highgui.so, not found (try using -rpath or rpath-link)
/home/anselmo/lib/lib/libopencv_highgui.so: undefined reference to
`avcodec_flush_buffers@LIBAVCODEC_53'
/home/me/lib/libopencv_highgui.so: undefined reference to
`av_freep@LIBAVUTIL_51'
/home/me/lib/libopencv_highgui.so: undefined reference to
`av_read_frame@LIBAVFORMAT_53'
libavutil.so.51,libavformat.so.53和libavcodec.so.53位于/ home / me / lib中,如makefile中所示。如何显示linux如何使用它们而不是机器中安装的?再一次,我不能成为root。