编译C99中的ffmpeg示例获取错误信息

时间:2016-01-29 08:47:25

标签: c ffmpeg

我可以使用ffmpeg构建环境运行“make examples”来获取.o文件。 但我无法使用C99编译。我使用的操作系统是Ubuntu 14.04,我在Installation of FFmpeg-2.8.5 in linux之后配置ffmpeg,安装它没有错误。

以下是详细信息(demuxing_decoding demuxing_decoding.c位于ffmpeg_souce_folder / doc / examples中):

 c99 -o demuxing_decoding demuxing_decoding.c -lavdevice -lavformat -lavcodec -lavfilter 
-lavutil -lswresample -lswscale -lz -lbz2
demuxing_decoding.c: In function ‘main’:
demuxing_decoding.c:326:9: warning: ‘avcodec_alloc_frame’ is deprecated (declared at /usr/include/libavcodec/avcodec.h:3927) [-Wdeprecated-declarations]
         frame = avcodec_alloc_frame();
         ^
demuxing_decoding.c:406:9: warning: ‘avcodec_free_frame’ is deprecated (declared at /usr/include/libavcodec/avcodec.h:3952) [-Wdeprecated-declarations]
         avcodec_free_frame(&frame);
         ^
/tmp/ccgEq0Zc.o: In function `decode_packet':
demuxing_decoding.c:(.text+0x561): undefined reference to `av_frame_unref'
/tmp/ccgEq0Zc.o: In function `open_codec_context':
demuxing_decoding.c:(.text+0x5f4): undefined reference to `av_get_media_type_string'
demuxing_decoding.c:(.text+0x66c): undefined reference to `av_get_media_type_string'
demuxing_decoding.c:(.text+0x6df): undefined reference to `av_get_media_type_string'
/tmp/ccgEq0Zc.o: In function `main':
demuxing_decoding.c:(.text+0xcc1): undefined reference to `av_frame_alloc'
demuxing_decoding.c:(.text+0x1082): undefined reference to `av_frame_free'
collect2: error: ld returned 1 exit status

我不是哪里错了......我已经被困了两天......需要你的帮助。非常感谢!

1 个答案:

答案 0 :(得分:2)

我终于弄清楚了我的问题。在我重建ffmpeg之前,我使用apt-get来安装ffmpeg。仅使用sudo apt-get remove ffmpeg删除它是不够的,另外运行此命令sudo apt-get remove libavutil-dev libavutil-extra-51。之后,重建ffmpeg。一切都很好〜