C语言 在 C99 中编译 ffmpeg 的示例得到错误的信息



我可以使用 ffmpeg 构建环境运行"制作示例"来获取 .o 文件。但是我无法使用 C99 进行编译。我使用的操作系统是 Ubuntu 14.04,我在 Linux 中安装 FFmpeg-2.8.5 后配置 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

我不知道哪里错了...我被困了两天...需要你的帮助。多谢!

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

最新更新