компиляция библиотек ffmpeg с включенным libvpx на windows - PullRequest
1 голос
/ 06 октября 2019

Нужно немного по поводу компиляции ffmpeg с включенной libvpx в Windows. Вот шаги, которые я выполнил, и ошибка, которую я получил

  1. установил msys2 на окна и установил необходимые пакеты (git, pkg-config, компилятор gcc и т. Д.)
  2. клонировал libvpx из "https://github.com/webmproject/libvpx.git" и создал решение vs15 (команда: ./configure --disable-vp8 --disable-vp9-encoder --target = x86_64-win64-vs15)
  3. открыть vpx.sln и скомпилировать vpxmd.lib успешно (создал файл vpx.pc и сохранил include и libs в нужном месте)
  4. клонировал ffmpeg из https://github.com/FFmpeg/FFmpeg.git и из msys2 я попытался его собрать (команда: ./configure --enable-asm --enable-yasm --arch = x86_64 --target-os = win64 --disable-encoders --disable-muxers --enable-libvpx --disable-doc --disable-ffplay --disable-ffprobe --disable-ffmpeg --enable-shared --disable-static --disable-bzlib --disable-libopenjpeg --disable-iconv --disable-zlib --prefix = / d / Stadia / FFmpeg --toolchain = msvc --disable-debug)

ffmpeg штрафует здание, но не содержит libvpx. config.log ниже:

. /ffconf.NEscC1Fm / test.c (4): предупреждение C4311: «приведение типа»: усечение указателя от «vpx_codec_iface_t * (__cdecl *) (void)» до «long»

. / compat / windows / mslink/ usr / local / lib -nologo -I / usr / local / include -libpath: / usr / local / lib -out: ./ ffconf.NEscC1Fm / test.exe ./ffconf.NEscC1Fm/test.o vpx.lib

LINK: предупреждение LNK4044: нераспознанная опция '/ IC: / msys64 / usr / local / include';игнорируется lib.obj (vp8_vp8_dx_iface.obj): MSIL .netmodule или модуль, скомпилированный с / GL найден;перезапуск ссылки с / LTCG;добавьте / LTCG в командную строку ссылки для повышения производительности компоновщика

LINK: предупреждение LNK4044: нераспознанная опция '/ IC: / msys64 / usr / local / include';игнорируется

ССЫЛКА: предупреждение LNK4098: defaultlib 'MSVCRT' конфликтует с использованием других библиотек;Использование / NODEFAULTLIB: библиотека lib.obj (vpx_mem_vpx_mem.obj): LNK2001 Ошибки: неразрешенный внешний символ __imp_malloc lib.obj (vp8_decoder_threading.obj): LNK2001 Ошибки: неразрешенный внешний символ __imp__beginthreadex lib.obj (vp8_decoder_decodeframe.obj): Ошибка LNK2001: нерешенныйвнешний символ __imp_fopen ./ffconf.NEscC1Fm/test.exe: фатальная ошибка LNK1120: 3 неразрешенных внешних кода

мой msys2 установлен на C: / msys2 / и / home / соответствует C / msys2 / home, если я использую--extra-ldflags = "- L / home / usr / local / lib", компоновщик обрабатывает его как / LC: / msys2 / usr / local / lib и, следовательно, не удается.

Шаг за шагомпошаговое руководство будет очень цениться здесь

...