С Рождеством всех,
Я кодирую ffmpeg с помощью gcc.
Но в процессе сборки я встретил ошибки «неопределенная ссылка на xxxxx» для всех функций, которые я закодировал в своей программе, и я понял, что это связано с файлом libxxx.a.
И каждый советник в Интернете предложил проверить каталог на наличие файлов.
Итак, я искал файлы, в которые входят имена функций на моем компьютере, и обнаружил, что файлы .a правильно установлены в каталоге, который я кодировал.
И есть другие файлы, которые называются «libxxx.dll.a», поэтому я попытался собрать файлы «libxxx.dll.a», но получил тот же результат.
По этому вопросу у меня есть несколько вопросов.
1) Если gcc не может найти файлы libxxx.a, он скажет, что "не может найти -lxxx". Но он просто сказал «неопределенная ссылка на хххх». Это означает, что эти файлы libxxx.a находятся в правильных каталогах.
2) А если файлы не определяют функции, это странно. Потому что эти файлы содержат имена функций и являются теми же файлами / каталогами, которые я искал на своем компьютере, и я думаю, что в них должны быть определения функций. Но я не уверен, что файлы определяют функции или нет, потому что я сам не могу прочитать файл.
Если я ошибаюсь, в чем была моя ошибка?
3) Можно ли заменить файлы libxxxlib.a на libxxx.a? И если это возможно, в чем разница между libxxxlib.a и libxxx.a? И то же самое для libz и libzlib? A
Вот моя строка commend, каталог, в котором находятся файлы libxxx.a.
g ++ -o C: \ ffmpeg \ ffmpegTest C: \ ffmpeg \ ffmpegTest.cc -IC: \ ffmpeg -LC: \ ffmpeg \ 3rdparty \ lib -lavutil -lavformat -lavcodec -lz -lavutil -lm -D__ST_ACACON *
C: \ FFmpeg \ 3rdparty \ Lib
C: \ Users \ AppData \ Local \ Temp \ ccVHLzjK.o: ffmpegTest.cc: <. Text + 0xec>: неопределенная ссылка на 'av_register_all ()'
C: \ Users \ AppData \ Local \ Temp \ ccVHLzjK.o: ffmpegTest.cc: <. Text + 0x11c>: неопределенная ссылка на файл av_open_input_file (AVFormatContext *, символьная константа , AVInputFormat *, int, AVFormatParameters *) '
C: \ Users \ AppData \ Local \ Temp \ ccVHLzjK.o: ffmpegTest.cc: <. Text + 0x13b>: неопределенная ссылка на 'av_find_stream_info (AVFormatContext *)'
C: \ Users \ AppData \ Local \ Temp \ ccVHLzjK.o: ffmpegTest.cc: <. Text + 0x174>: неопределенная ссылка на 'dump_format (AVFormatContext, int, char const *, int)'
C: \ Users \ AppData \ Local \ Temp \ ccVHLzjK.o: ffmpegTest.cc: <. Text + 0x224>: неопределенная ссылка на 'avcodec_find_decoder (CodecID)'
и все ошибки
C: \ Users \ AppData \ Local \ Temp \ ccVHLzjK.o: ffmpegTest.cc: <. Text + 0x281>: неопределенная ссылка на 'avcodec_open (AVCodecContext *, AVCodec)' *
C: \ Users \ AppData \ Local \ Temp \ ccVHLzjK.o: ffmpegTest.cc: <. Text + 0x297>: неопределенная ссылка на 'avcodec_alloc_frame ()'
C: \ Users \ AppData \ Local \ Temp \ ccVHLzjK.o: ffmpegTest.cc: <. Text + 0x2a3>: неопределенная ссылка на 'avcodec_alloc_frame ()'
C: \ Users \ AppData \ Local \ Temp \ ccVHLzjK.o: ffmpegTest.cc: <. Text + 0x2e6>: неопределенная ссылка на 'avpicture_get_size (PixelFormat, int, int)'
C: \ Users \ AppData \ Local \ Temp \ ccVHLzjK.o: ffmpegTest.cc: <. Text + 0x2fc>: неопределенная ссылка на 'av_malloc (unsigned int)'
C: \ Users \ AppData \ Local \ Temp \ ccVHLzjK.o: ffmpegTest.cc: <. Text + 0x341>: неопределенная ссылка на 'avpicture_fill (AVPicture *, unsigned char *, PixelFormat, int, int)'
C: \ Users \ AppData \ Local \ Temp \ ccVHLzjK.o: ffmpegTest.cc: <. Text + 0x38c>: неопределенная ссылка на 'avcodec_decode_video2 (AVCodecContext, AVFrame *, int, AVPacket *)'
C: \ Users \ AppData \ Local \ Temp \ ccVHLzjK.o: ffmpegTest.cc: <. Text + 0x409>: неопределенная ссылка на 'sws_getContext (int, int, PixelFormat, int, int, PixelFormat, int, SwsFilter *, swsFilter *, double const *) '
C: \ Users \ AppData \ Local \ Temp \ ccVHLzjK.o: ffmpegTest.cc: <. text + 0x463>: неопределенная ссылка на 'sws_scale (SwsContext *, unsigned char const * const *, int const *, int, int, беззнаковый char * const *, int сопз *) '
C: \ Users \ AppData \ Local \ Temp \ ccVHLzjK.o: ffmpegTest.cc: <. Text + 0x4bb>: неопределенная ссылка на 'av_free_packet (AVPacket *)'
C: \ Users \ AppData \ Local \ Temp \ ccVHLzjK.o: ffmpegTest.cc: <. Text + 0x4cf>: неопределенная ссылка на 'av_read_frame (AVFormatContext, AVPacket *)'
C: \ Users \ AppData \ Local \ Temp \ ccVHLzjK.o: ffmpegTest.cc: <. Text + 0x36c>: неопределенная ссылка на 'av_free (void *)'
C: \ Users \ AppData \ Local \ Temp \ ccVHLzjK.o: ffmpegTest.cc: <. Text + 0x36c>: неопределенная ссылка на 'avcodec_close (AVCodecContext *)'
C: \ Users \ AppData \ Local \ Temp \ ccVHLzjK.o: ffmpegTest.cc: <. Text + 0x36c>: неопределенная ссылка на 'av_close_input_file (AVFormatContext)'