/ usr / bin / ld:警告:libavcodec.so.53,未找到xxx所需

时间:2015-05-27 13:37:35

标签: c++ linux opencv makefile libavcodec

我正在尝试使用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。

0 个答案:

没有答案