我可以使用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
我不是哪里错了......我已经被困了两天......需要你的帮助。非常感谢!
答案 0 :(得分:2)
我终于弄清楚了我的问题。在我重建ffmpeg之前,我使用apt-get
来安装ffmpeg。仅使用sudo apt-get remove ffmpeg
删除它是不够的,另外运行此命令sudo apt-get remove libavutil-dev libavutil-extra-51
。之后,重建ffmpeg。一切都很好〜