Добрый день, ЛОР.
Пытаюсь собрать на древней системе ffmpeg 3.2. Старый ffmpeg и ffmpeg-devel снёс.
Сделал:
./configure --disable-yasm --disable-zlib
make
От рута:
make install
Библиотеки установились в /usr/local/lib.
Добавил в /etc/ld.so.conf.d текстовый файл с упоминанием /usr/local/lib, выполнил ldconfig.
Запущенный ffmpeg показывает:
ffmpeg version 3.2 Copyright (c) 2000-2016 the FFmpeg developers
built with gcc 4.1.3 (GCC) 20080704 (prerelease)
configuration: --disable-yasm --disable-zlib
libavutil 55. 34.100 / 55. 34.100
libavcodec 57. 64.100 / 57. 64.100
libavformat 57. 56.100 / 57. 56.100
libavdevice 57. 1.100 / 57. 1.100
libavfilter 6. 65.100 / 6. 65.100
libswscale 4. 2.100 / 4. 2.100
libswresample 2. 3.100 / 2. 3.100
Теперь я запускаю свой кутешный проект. В файле проекта есть ссылки на библиотеки ffmpeg:
unix {
LIBS += -lavutil -lavformat -lavcodec -lswscale
}
Мои исходники компилируются, но линкер обламывается со следующей формулировкой:
/usr/local/lib/libavformat.a(apngenc.o): In function `apng_write_chunk':
/home/user/projects/ffmpeg-3.2/libavformat/apngenc.c:61: undefined reference to `av_crc_get_table'
/home/user/projects/ffmpeg-3.2/libavformat/apngenc.c:69: undefined reference to `av_crc'
/home/user/projects/ffmpeg-3.2/libavformat/apngenc.c:72: undefined reference to `av_crc'
То есть программа подцепляет libavformat.a, а уже в нём почему-то не получается подцепить имя, заданное в libavutil.a/crc.o
Раньше тот же проект без проблем собирался в Windows, а также в Linux с более старой версией ffmpeg, которую опакечивал не я (но условные компиляции в проекте присутствуют, да).