ffmpeg падает на cygwin при запуске с кодом выхода 0xc0000022 - PullRequest
1 голос
/ 26 января 2011

Я пытаюсь собрать ffmpeg с поддержкой libx264. Настройка и компиляция выполнены успешно, но при запуске ffmpeg происходит сбой приложения.

ffmpeg configure option : ./configure --enable-static --enable-libx264 --enable-pthreads --enable-gpl --disable-doc --enable-memalign-hack --extra-ldflags="-L/usr/local/lib"
gcc --version 4.3.4

Вот дамп GDB,

$gdb ffmpeg_g.exe  
GNU gdb(GDB) 7.2  
Copyright(c) 2010 Free Software Foundation  
This GDB has configured as mingw32

Reading symbols from C:\work\ffmpeg25jan2011\ffmpeg\ffmpeg_g.exe.....done  
(gdb) break main  
BreakPoint 1 at 0x40a120 : file ffmpeg.c, line 4317  
(gdb) run -V  
Starting program: C:\work\ffmpeg25jan2011\ffmpeg\ffmpeg_g.exe  
[New Thread]  
gdb: Unknown Target exception 0xc0000022 at 0x7c96671e   
**During startup program exited with code 0xc0000022**  

Кто-нибудь знает, как это можно решить?

1 Ответ

3 голосов
/ 28 января 2011

Код ошибки Windows 0xc0000022 означает «Приложение не удалось инициализировать». Обычно это означает, что ваша сборка сломана. Есть много вещей, которые могли пойти не так, но вот несколько вещей, которые нужно проверить:

  • Вы должны собрать все библиотеки, на которые вы ссылаетесь, с помощью одного набора инструментов. может быть в состоянии связать ffmpeg, построенный на Cygwin, с libx264, созданным на VC ++, но, поскольку для этого нет веских оснований, вы не должны этого делать.

  • Попробуйте "головную" версию ffmpeg и ее зависимостей из исходного репозитория

  • Вы показываете пути Windows, но утверждаете, что используете Cygwin. Попробуйте использовать полностью Cygwin-среду: сборка из оболочки Cygwin bash, использование путей POSIX и т. Д. В частности, это поможет обеспечить установку библиотек в местах, где их могут найти инструменты сборки.

  • Возможно, вам придется установить некоторые библиотеки в /usr/lib, а не по умолчанию /usr/local/lib.

  • Попробуйте полную перестройку: make clean && make

...