我试着用ffmpeg语言做一个最简单的应用程序。这是我的代码:
C.主要:
#include <libavcodec/avcodec.h>
#include <libavformat/avformat.h>
#include <libswscale/swscale.h>
int main()
{
avformat_network_init();
return 0;
}编译器命令:
gcc -o main main.c -Wall -lavformat -lavcodec -lswresample -lswscale -lavutil -lm -lz -lpthread -L/usr/local/lib/导致:
/home/ievdokimov/repos/FFmpeg/libavformat/matroskaenc.c:709: /usr/local/lib//libavformat.a(matroskaenc.o):在函数get_aac_sample_rates': /home/ievdokimov/repos/FFmpeg/libavformat/matroskaenc.c:709: undefined reference toavpriv_mpeg4audio_get_config2中‘未定义的对avpriv_mpeg4audio_get_config2' /usr/local/lib//libavformat.a(mux.o): In function ff_interleave_add_packet的引用’:/home/ievdokimov/repos/FFmpeg/libavformat/mux.c:936:未定义的对av_packet_make_refcounted' /usr/local/lib//libavformat.a(utils.o): In function ff_packet_list_put的引用‘:/home/ievdokimov/repos/FFmpeg/libavformat/utils.c:461:未定义的对/home/ievdokimov/repos/FFmpeg/libavformat/utils.c:876:_av_packet_make_refcounted' /usr/local/lib//libavformat.a(utils.o): In function_packet的引用:未定义的对av_packet_make_refcounted' /usr/local/lib//libavformat.a(utils.o): In functionff_read_packet的引用:对av_packet_make_refcounted' /usr/local/lib//libavformat.a(codec2.o): In function的未定义引用av_packet_make_refcounted' /usr/local/lib//libavformat.a(codec2.o): In function codec2_read_header_common':/home/ievdokimov/repos/FFmpeg/libavformat/codec2.c:74:未定义的对avpriv_codec2_mode_bit_rate' /home/ievdokimov/repos/FFmpeg/libavformat/codec2.c:75: undefined reference toavpriv_codec2_mode_frame_size的引用/home/ievdokimov/repos/FFmpeg/libavformat/codec2.c:76:未定义引用avpriv_codec2_mode_block_align' /home/ievdokimov/repos/FFmpeg/libavformat/codec2.c:74: undefined reference toavpriv_codec2_mode_bit_rate‘/home/ievdokimov/repos/FFmpeg/libavformat/codec2.c:75:未定义的对avpriv_codec2_mode_frame_size' /home/ievdokimov/repos/FFmpeg/libavformat/codec2.c:76: undefined reference toavpriv_codec2_mode_block_align’/usr/lib//libavformat.a(isom.o)的引用:函数ff_mp4_read_dec_config_descr': /home/ievdokimov/repos/FFmpeg/libavformat/isom.c:552: undefined reference toavpriv_mpeg4audio_get_config2‘/usr/local/lib/libavformat.a(latmenc.o):In函数latm_decode_extradata': /home/ievdokimov/repos/FFmpeg/libavformat/latmenc.c:65: undefined reference toavpriv_mpeg4audio_get_config2‘/home/ievdokimov/repos/FFmpeg/libavformat/latmenc.c:65:未定义的引用avpriv_mpeg4audio_get_config2' /usr/local/lib//libavformat.a(matroskadec.o): In function matroska_decode_avpriv_mpeg4audio_get_config2' /usr/local/lib//libavformat.a(matroskadec.o): In function’:/home/ievdokimov/repos/FFmpeg/libavformat/matroskadec.c:1657:未定义引用BZ2_bzDecompressInit' /home/ievdokimov/repos/FFmpeg/libavformat/matroskadec.c:1672: undefined reference toBZ2_bzDecompress‘/home/ievdokimov/repos/FFmpeg/libavformat/matroskadec.c:1665:未定义的引用BZ2_bzDecompressEnd' /home/ievdokimov/repos/FFmpeg/libavformat/matroskadec.c:1675: undefined reference toBZ2_bzDecompressEnd’/usr/local/lib//libavformat.a。o):在函数mxf_parse_dnxhd_frame': /home/ievdokimov/repos/FFmpeg/libavformat/mxfenc.c:2030: undefined reference toavpriv_dnxhd_get_hr_frame_size‘中,ff_ue_golomb_vlc_code’/usr/local/lib//libavformat.a(mxfenc.o):在函数get_ue_golomb_31': /home/ievdokimov/repos/FFmpeg/./libavcodec/golomb.h:140: undefined reference to中,/usr/local/lib//libavformat.a(rtpenc_vc2hq.o):在函数init_get_bits_xe': /home/ievdokimov/repos/FFmpeg/./libavcodec/get_bits.h:628: undefined reference toff_interleaved_golomb_vlc_len‘中,/usr/local/lib//libavformat.a(rtpenc_vc2hq.o):在函数get_interleaved_ue_golomb': /home/ievdokimov/repos/FFmpeg/./libavcodec/golomb.h:197: undefined reference toff_interleaved_中。/home/ievdokimov/repos/FFmpeg/./libavcodec/golomb.h:185:未定义对ff_interleaved_dirac_golomb_vlc_code' /home/ievdokimov/repos/FFmpeg/./libavcodec/golomb.h:197: undefined reference toff_interleaved_dirac_golomb_vlc_code‘/home/ievdokimov/repos/FFmpeg/./libavcodec/golomb.h:197:的未定义引用ff_interleaved_dirac_golomb_vlc_code' /home/ievdokimov/repos/FFmpeg/./libavcodec/golomb.h:185: undefined reference toff_interleaved_dirac_golomb_vlc_code’/usr/local/lib//libavformat.a(rtpenc_vc2hq.o):/home/ievdokimov/repos/FFmpeg/./libavcodec/的未定义引用更多未定义的引用: get_interleaved_ue_golomb':/home/ievdokimov/repos/FFmpeg/./libavcodec/golomb.h:183:未定义的对ff_interleaved_ue_golomb_vlc_code' /home/ievdokimov/repos/FFmpeg/./libavcodec/golomb.h:183: undefined reference toff_interleaved_ue_golomb_vlc_code‘的引用,/home/ievdokimov/repos/FFmpeg/./libavcodec/golomb.h:183:未定义的对ff_interleaved_ue_golomb_vlc_code' /usr/local/lib//libavformat.a(spdifdec.o): In function的引用,/home/ievdokimov/repos/FFmpeg/./libavcodec/golomb.h:183:_get_偏移和_codec’:/home/ievdokimov/repos/FFmpeg/libavformat/spdifdec.c:63:未定义的对av_adts_header_parse' /home/ievdokimov/repos/FFmpeg/libavformat/spdifdec.c:63: undefined reference toav_adts_header_parse‘/usr/local/lib//libavformat.a(spdifenc.o)的引用:函数spdif_header_aac': /home/ievdokimov/repos/FFmpeg/libavformat/spdifenc.c:362: undefined reference toav_adts_header_parse’/usr/spdif_header_aac': /home/ievdokimov/repos/FFmpeg/libavformat/spdifenc.c:362: undefined reference to/lib//libavformat.a(ac3dec.o):函数ac3_eac3_probe': /home/ievdokimov/repos/FFmpeg/libavformat/ac3dec.c:63: undefined reference toav_ac3_parse_header中未定义的对av_ac3_parse_header' /usr/local/lib//libavformat.a(adtsenc.o): In function adts_decode_extradata的引用: /home/ievdokimov/repos/FFmpeg/libavformat/adtsenc.c:56:对`avpriv_mpeg4audio_get_config2‘collect2: collect2的未定义引用:错误: ld返回1个退出状态
有办法解决这个问题吗?
发布于 2020-03-25 14:27:12
libavformat.so文件版本似乎与其他库不同。请检查与其他库(如liavcodec )兼容的版本。
https://stackoverflow.com/questions/60850419
复制相似问题