Попытка скомпилировать FFmpeg 4.2.3 статически для Windows 10 (x86_64), но двоичные файлы запрашивают отсутствующие библиотеки DLL - PullRequest
0 голосов
/ 27 мая 2020

Я использую Msys MinGW (x86_64) и вытащил моментальный снимок последней основной версии FFmpeg с их веб-сайта. Вот мои ./configure варианты. Я планирую использовать двоичные файлы как на компьютере, на котором я его скомпилировал, так и на других Windows компьютерах, которые у меня есть.

./configure --enable-libaom --enable-avisynth --enable-chromaprint --enable-libdav1d --enable-libdavs2 --enable-libgme --enable-libmfx --enable-libkvazaar --enable-libmp3lame --enable-libilbc --enable-libvpx --enable-libmodplug --enable-version3 --enable-nonfree --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvo-amrwbenc --enable-libfdk-aac --enable-libopenh264 --enable-libopenjpeg --enable-nvenc --enable-nvdec --enable-cuda --enable-cuvid --enable-libtwolame --enable-vapoursynth --enable-libwavpack --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxavs2 --enable-gpl --enable-static --disable-shared

Вывод скрипта configure (pastebin)

Вывод uname -a (в Msys)

MINGW64_NT-10.0-18362 <scrubbed> 3.1.4-340.x86_64 2020-05-22 08:28 UTC x86_64 Msys

Проблема, с которой я столкнулся, заключается в том, что, несмотря на передачу параметров --enable-static и --disable-shared, сгенерированные исполняемые файлы по-прежнему требуют libchromaprint.dll, libfdk-aac-2.dll и libgme.dll для запуска. Я ожидал, что FFmpeg будет выполняться независимо от любых файлов DLL, поскольку я передал эти параметры в ./configure.

1 Ответ

0 голосов
/ 29 мая 2020

Даже если вы укажете --enable-static, общие библиотеки могут использоваться в тех случаях, когда библиотека stati c не найдена. Вы должны получить предупреждения от libtool об этом во время сборки.

Так что, если он ищет libchromaprint.a и не может его найти, он свяжется с libchromaprint.dll.a, вызывая зависимость от DLL.

Проверьте зависимости, чтобы узнать, доступны ли их библиотеки c stati (в вашем случае libchromaprint.a, libfdk-aac-2.a, libgme.a).

...