Невозможно связать приложение с libavcodec - PullRequest
0 голосов
/ 25 марта 2020

Я пытаюсь сделать простейшее приложение с использованием библиотек ffmpeg. Вот мой код:

main. 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/

приводит к:

/usr/local/lib//libavformat.a(matroskaenc.o): в функции get_aac_sample_rates': /home/ievdokimov/repos/FFmpeg/libavformat/matroskaenc.c:709: undefined reference to avpriv_mpeg4audio_get_config2 '/home/ievdokimov/repos/FFmpeg/libavformat/matroskaenc.c:709: не определено ссылка на 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/ 1048 *: 461: неопределенная ссылка на av_packet_make_refcounted' /usr/local/lib//libavformat.a(utils.o): In function parse_packet ': /home/ievdokimov/repos/FFmpeg/libavformat/utils.c:1494: неопределенная ссылка на av_packet_make_refcounted' /usr/local/lib//libavformat.a(utils.o): In function ff_read_packet': / home / ievdokimov / repos / FFmpeg /libavformat/utils.c:876: неопределенная ссылка на 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 to avpriv_codec2_mode_frames ievdokimov / repos / FFmpeg / libavformat / codec2. c: 76: неопределенная ссылка на avpriv_codec2_mode_block_align' /home/ievdokimov/repos/FFmpeg/libavformat/codec2.c:74: undefined reference to avpriv_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 to avpriv_codec2_mode_block_align' /usr/local/lib//libavformat.a( функции *) *) 1021 * avpriv_mpeg4audio_get_config2 '/usr/local/lib//libavformat.a(latmenc.o): в функции latm_decode_extradata': /home/ievdokimov/repos/FFmpeg/libavformat/latmenc.c:65: undefined reference to avpriv_mpeg4audio_get_config2' /home/ievdokimov/repos/FFmpeg/libavformat.lat : 65: неопределенная ссылка на avpriv_mpeg4audio_get_config2' /usr/local/lib//libavformat.a(matroskadec.o): In function matroska_decode_buffer ': /home/ievdokimov/repos/FFmpeg/libavformat/matroskadec.c:1657: неопределенная ссылка на BZ2_bzDecompressInit' /home/ievdokimov/repos/FFmpeg/libavformat/matroskadec.c:1672: undefined reference to BZ2_bzDecompress' / home / ievdokimov / repos / FGF /libavformat/matroskadec.c:1665: неопределенная ссылка на BZ2_bzDecompressEnd' /home/ievdokimov/repos/FFmpeg/libavformat/matroskadec.c:1675: undefined reference to BZ2_bzDecompressEnd '/usr/local/lib//libavformat.a(mxfenc.o): в функции get_ue_golomb_31': /home/ievdokimov/repos/FFmpeg/./libavcodec/golomb.h:140: undefined reference to ff_ue_golomb_vlc_code' usr / local / lib // libavformat.a (mxfen c .o): в функции mxf_parse_dnxhd_frame': /home/ievdokimov/repos/FFmpeg/libavformat/mxfenc.c:2030: undefined reference to avpriv_dnxhd_get_hr_frame_size '/usr/local/lib//libavformat.a(rtpenc_vc2hq.o): в функции * 1028ved_fl_olle / USR / местные / Библиотека // libavform at.a (rtpenc_vc2hq.o): в функции get_interleaved_ue_golomb': /home/ievdokimov/repos/FFmpeg/./libavcodec/golomb.h:197: undefined reference to ff_interleaved_dirac_golomb_vlc_code '/home/ievdokimov/repos/FFmpeg/./libavcodec/golomb.h:185: неопределенная ссылка на ff_interleaved_dirac_golomb_vlc_code' /home/ievdokimov/repos/FFmpeg/./libavcodec/golomb.h:197: undefined reference to ff_interlev_ok_job_id_voc_vid_home_vid_om_v_v_job_id_voc FFmpeg /./ libavcodec / golomb.h: 197: неопределенная ссылка на ff_interleaved_dirac_golomb_vlc_code' /home/ievdokimov/repos/FFmpeg/./libavcodec/golomb.h:185: undefined reference to ff_interleaved_dirac_golomb_vlc_code '/usr/local/lib//libavformat.a(rtpenc_vc2hq.o):/home/ievdokimov/repos/libb) golomb.h: 185: больше неопределенных ссылок на ff_interleaved_dirac_golomb_vlc_code' follow /usr/local/lib//libavformat.a(rtpenc_vc2hq.o): In function 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 to ff_interleaved_ue_golomb_vlc_code / code / home / home / home / home / home / home / home / home / home / home / home / home / home / home / home / home / home / home / home FFmpeg /./ libavcodec / golomb.h: 183: неопределенная ссылка на ff_interleaved_ue_golomb_vlc_code' /usr/local/lib//libavformat.a(spdifdec.o): In function spdif_get_offset_and_code c ': /home/ievdokimov/repos/FFmpeg/libavformat/spdifdec.c:63: неопределенная ссылка на av_adts_header_parse' /home/ievdokimov/repos/FFmpeg/libavformat/spdifdec.c:63: undefined reference to av_adts_header_parse '/usr/local/lib//libavformat.a(spdifenc.o): в функции spdif_header_aac': /home/ievdokimov/repos/FFmpeg/libavformat/spdifenc.c:362: undefined reference to av_adts_header_parse' /usr/local/lib//libavformat.a(ac3dec.o) : В функции * 10 37 * av_ac3_parse_header '/home/ievdokimov/repos/FFmpeg/libavformat/ac3dec.c:60: неопределенная ссылка на av_ac3_parse_header' /usr/local/lib//libavformat.a(adtsenc.o): In function adts_decode_extradata': / home / ievdokimov / repos / FFmpeg / libavformat / ad * . c: 56: неопределенная ссылка на `avpriv_mpeg4audio_get_config2 'collect2: error: ld вернул 1 состояние выхода

Есть ли способ исправить это?

1 Ответ

1 голос
/ 25 марта 2020

Кажется, что версия файла libavformat.so отличается от других библиотек. Пожалуйста, проверьте версию, совместимую с другими библиотеками, такими как liavcodec

...