скомпилировать ffmpeg с android ndk r5b - PullRequest
7 голосов
/ 05 марта 2011

скомпилируйте ffmpeg с android ndk r5b.

ffmpeg 0.6.1

android ndk r5b

cygwin 1.7

URL ссылки сборки: http://www.cnblogs.com/scottwong/archive/2010/12/17/1909455.html

но, ffmpeg ./configure ошибка результата! (ниже файла config.err)

check_cc
BEGIN /tmp/ffconf.GlDiY1P8.c
    1   int main(void){ return 0; }
END /tmp/ffconf.GlDiY1P8.c
/android-ndk-r5b/toolchains/arm-eabi-4.4.0/prebuilt/windows/bin/arm-eabi-gcc -fPIC -DANDROID -c -o /tmp/ffconf.1kQLpGaU.o /tmp/ffconf.GlDiY1P8.c
arm-eabi-gcc.exe: /tmp/ffconf.GlDiY1P8.c: No such file or directory

arm-eabi-gcc.exe: no input files

C compiler test failed.

Итак, я просто попробую тестовый код.

// test.c code
int main(){
  return 0;
}

/ android-ndk-r5b / toolchains / arm-eabi-4.4.0 / встроенный / windows / bin / arm-eabi-gcc -fPIC -DANDROID -c -o ./test.o ./test.c

ок !!!! нет проблем.

но, cp ./test.c / tmp (копировать в / tmp)

/ android-ndk-r5b / toolchains / arm-eabi-4.4.0 / готовый / windows / bin / arm-eabi-gcc -fPIC -DANDROID -c -o ./test.o /tmp/test.c

arm-eabi-gcc.exe: /tmp/test.c: No such file or directory
arm-eabi-gcc.exe: no input files

обязательно !!! Разница только в пути к файлу. Каталог / tmp существует, и права доступа правильные. /home/test.c - тот же результат.

что не так?

Ответы [ 6 ]

6 голосов
/ 13 августа 2011

Мне было трудно заставить его работать в Windows, но, наконец, мне удалось это сделать! Предыдущие сообщения были правильными - есть проблема с путями Cygwin и путями Windows. Я попробовал решение, описанное в посте выше, как самое первое, но оно не работало. Наконец, я понимаю причину: даже если вы добавите в свой файл build_android.sh путь Windows, конфигурация для FFmpeg все равно будет содержать неправильный путь.

Так что в моем случае я частично изменил файл конфигурации в корневом каталоге FFmpeg с:

#set temporary file name
: ${TMPDIR:=$TEMPDIR} 
: ${TMPDIR:=$TMP}
: ${TMPDIR:=/tmp}

к этому:

# set temporary file name
#: ${TMPDIR:=$TEMPDIR}
#: ${TMPDIR:=$TMP}
: ${TMPDIR:=D:/InstallTools/Android/Cygwin_Root/tmp}

После этого я получил его компиляцию.

3 голосов
/ 07 января 2013

Вы не устанавливаете каталог tmp. Вы можете установить его в / etc / profile или просто в терминале с помощью export TMPDIR=/your/tmp/directory. Обратите внимание: 1. Если вы компилируете с помощью cygwin, каталог должен быть похож на D: / tmp. Вы не можете использовать / cygdrive / d / tmp. 2. У вас должны быть права доступа к папке.

1 голос
/ 10 августа 2011

Мне удалось собрать его, используя NDK R6, Cygwin.На самом деле, он не поддерживает пути / cydrive / , просто используйте пути как windows;пример ниже:

NDK=e:/AndroidSDK/NDK6
PLATFORM=$NDK/platforms/android-9/arch-arm/
PREBUILT=$NDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt/windows
1 голос
/ 11 апреля 2011

Я тоже не мог заставить это работать, у меня была точно такая же проблема. Однако я смог собрать с помощью "android-ndk-r4". В настоящий момент я не уверен, что является причиной проблемы, но если я когда-нибудь найду способ разобраться в ней, я тоже опубликую это.

Итак, пока что обходной путь - использовать ndk r4.

0 голосов
/ 28 июля 2011

У меня точно такая же проблема с r6.Я попробовал предложение Ламбейджа с r4, но все равно не смог заставить его работать.

Я довольно много раз изучал проблему и, думаю, я обнаружил причину.

1)configure вызывает кросс-компилятор Android, который представляет собой файл Windows .exe.

2) Он вызывает его через cygwin, который использует соглашения об именах файлов Unix.Каталог EG / cygdrive / c / вместо C: \ directory

3) В документации по цепочке инструментов android NDK говорится, что кросс-компиляторы НЕ принимают пути к файлам в стиле cygwin (источник: NDK / docs / STANDALONE_TOOLCHAIN.html):


5.1 / Поддержка Windows:

Двоичные файлы Windows не зависят от Cygwin.Хорошие новости заключаются в том, что они быстрее, плохие - в том, что они не понимают спецификацию пути Cygwin, например / cygdrive / c / foo / bar (вместо C: / foo / bar).


Я все еще пытаюсь найти способ сделать это.Если я решу это, я вернусь и отредактирую этот пост ... tbc

0 голосов
/ 14 марта 2011

Если вы не решили эту проблему, проверьте последнюю часть config.log в каталоге ffmpeg; скорее всего, это проблема пути или параметра CC.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...