我正在尝试为我的项目构建ffmpeg 0.6。我正在使用Ubuntu 16.04,当我尝试构建它时,我收到以下错误:
In file included from libavcodec/mpegvideo.h:32:0,
from libavcodec/vaapi_internal.h:30,
from libavcodec/vaapi_mpeg4.c:23:
libavcodec/get_bits.h: In function ‘skip_bits’:
libavcodec/get_bits.h:387:17: warning: variable ‘re_cache’ set but not used [-Wunused-but-set-variable]
OPEN_READER(re, s)
^
libavcodec/get_bits.h:135:13: note: in definition of macro ‘OPEN_READER’
int name##_cache= 0;\
^
libavcodec/vaapi_mpeg4.c: In function ‘vaapi_mpeg4_start_frame’:
libavcodec/vaapi_mpeg4.c:89:73: error: implicit declaration of function ‘ff_h263_get_gob_height’ [-Werror=implicit-function-declaration]
pic_param->num_macroblocks_in_gob = s->mb_width * ff_h263_get
^
cc1: some warnings being treated as errors
common.mak:40: recipe for target 'libavcodec/vaapi_mpeg4.o' failed
make: *** [libavcodec/vaapi_mpeg4.o] Error 1
我遇到了与ffserver.o文件类似的错误,但我在这里下载了这些文件并修复了它:
sudo apt-get -y install autoconf automake build-essential libass-dev libfreetype6-dev \
libsdl1.2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev libxcb1-dev libxcb-shm0-dev \
libxcb-xfixes0-dev pkg-config texinfo zlib1g-dev
我相信它的相似之处。有人有什么想法? 谢谢。
答案 0 :(得分:0)
好的,我已经在我的ubuntu 16.04上构建了0.6版本。
错误implicit declaration of function
表示某些标题中可以找到某个符号,但该源文件中不包含此标题。
因此我尝试找到ff_h263_get_gob_height
函数声明:
$ ag ff_h263_get_gob_height
事实证明它在" libavcodec / h263.h"中声明。您需要做的就是在libavcodec/vaapi_mpeg4.c
添加一行:
#include "libavcodec/h263.h"
继续构建时会出现另一个类似的错误。
此外,您必须使用--enable-pthreads
配置项目,否则链接器会抱怨一些恼人的DSO错误。