Вопрос по android – Как собрать отдельную инструментальную цепочку Android в Windows 7

3

Я пытаюсь создать автономную цепочку инструментов, используя ndk 8 для mips, выполнив & quot; docs \ STANDALONE-TOOLCHAIN.html & quot; но когда я запускаю следующую команду "make-standalone-toolchain.sh --platform = android-14 --install-dir = / tmp / my-android-toolchain" в командной строке я получил следующие ошибки

<code>E:\Installed_SDKs\android-ndk-r8\build\tools>make-standalone-toolchain.sh --plat
form=android-14 --arch=mips --install-dir=./mytool
Welcome to Git (version 1.7.9-preview20120201)


Run 'git help git' to display the help index.
Run 'git help <command>' to display help for specific commands.
expr: syntax error
expr: syntax error
./prebuilt-common.sh: line 159: name: No such file or directory
./prebuilt-common.sh: line 159: OPTIONS_abstract_Specify: command not found
expr: syntax error
expr: syntax error
./prebuilt-common.sh: line 159: name: No such file or directory
./prebuilt-common.sh: line 159: OPTIONS_abstract_Specify: command not found
expr: syntax error
expr: syntax error
./prebuilt-common.sh: line 159: path: No such file or directory
./prebuilt-common.sh: line 159: path: No such file or directory
./prebuilt-common.sh: line 159: OPTIONS_default_.=: command not found
expr: syntax error
expr: syntax error
./prebuilt-common.sh: line 159: name: No such file or directory
./prebuilt-common.sh: line 159: OPTIONS_abstract_Specify: command not found
expr: syntax error
expr: syntax error
./prebuilt-common.sh: line 159: path: No such file or directory
./prebuilt-common.sh: line 159: path: No such file or directory
./prebuilt-common.sh: line 159: OPTIONS_default_/tmp/ndk-=: No such file or directory
expr: syntax error
expr: syntax error
./prebuilt-common.sh: line 159: path: No such file or directory
./prebuilt-common.sh: eval: line 159: unexpected EOF while looking for matching
`''
./prebuilt-common.sh: eval: line 160: syntax error: unexpected end of file
expr: syntax error
expr: syntax error
./prebuilt-common.sh: line 159: name: No such file or directory
./prebuilt-common.sh: line 159: OPTIONS_abstract_Specify: command not found
./prebuilt-common.sh: line 159: OPTIONS_default_android-3=: command not found
expr: syntax error
expr: syntax error
expr: syntax error
expr: syntax error
expr: syntax error
ERROR: Unknown option '--platform=android-14'. Use --help for list of valid values.
</code>

Может ли какой-нибудь орган руководить тем, что я делаю неправильно! или как я могу построить отдельную цепочку инструментов в Windows 7

С уважением Ahsan

Вы когда-нибудь выясняли это (поскольку никто не представил никаких ответов)? BonanzaDriver

Ваш Ответ

3   ответа
4
$ E:>Installed_SDKs/android-ndk-r9d/build/tools/make-standalone-toolchain.sh --platform=android-14 --arch=mips --system=windows-x86_64

/tmp/ndk-/mipsel-linux-android-4.6.tar.bz2 для меня; теперь я могу распаковать этот файл вE:\Installed_SDKs\android-ndk-r8\build\tools\mytool и жить долго и счастливо.

@ Alex Cohn Большое спасибо Vyshakh Amarnath
Для тех, кто использует более новую версию NDK, вы должны заменить --system = windoes-x86_64 на --system = windows на NDK r10d (и, вероятно, более ранние версии NDK r10 тоже) Pooks
2

Укороченная верси:

заменитьexpr -- сexpr в файле$NDK_HOME/build/tools/prebuilt-common.sh с текстовым редактором на ваш выбор. Тогда бегите как задокументировано.

Длинная версия:

Синтаксические ошибки, которые вы видите в выходных данных из реализации android ndk парсера аргументов. Люди, которые написали этот сценарий, решили использоватьexprоманда @ с регулярными выражениями для разбора аргументов вместо использованияecho $1 | grep .... Это, конечно, выглядит намного чище (хотя echo-grep используется в другом скрипте из ndk), ноexpr не самая стандартная команда. Он имеет набор аргументов, общих для всех реализаций, как подробно описано в спецификации POSIX, а все остальное может быть реализовано по-другому или вообще не реализовано.

Если ты заглянешь в файл$NDK_HOME/build/tools/prebuilt-common.sh в строке 392 (может зависеть от версии NDK) вы кодируете так:

param=`expr -- "$1" : '^\([^\-].*\)$'`

Обратите внимание, как аргументыexpr отделяются--. Этон указано в POSIX спецификацияexpr. Это даже не упоминается ни в одном Линукс мужик. Это просто работает, потому что некоторые хост-системы имеютexpr команда, которая распознает-- как "прекратить анализ аргументов". Так что это явно случай использования недокументированная функциональность.

Вы, похоже, используете Git-bash - версию bash, которая поставляется с mingw32-git, распространяемой git-scm.org. Эта версия не поддерживаетexpr --интаксис @ во все аргументы разбора библиотеки. Чтобы это исправить - просто замените всеexpr -- сexpr в файле prebuilt-common.sh. Он по-прежнему будет выдавать некоторые предупреждения, но скрипт должен работать.

Этот трюк сработал для меня. Я использую git-bash в Windows 7 машина. У меня сработала следующая команда:make-standalone-toolchain.sh --platform=android-19 --arch=arm --install-dir=/root/iqbal/toolchain --ndk-dir=../../ --system=windows-x86_64 Bens.Raouf
1

написанной на C, нам нужен NDK. Но компилирование библиотек такого типа на окнах очень сложно, иногда застревает, и это всегда расстраивает. Советую попробовать компиляцию на Linux. Это определенно будет скомпилировано. Linux / Mac - лучшие платформы для кросс-компиляции. Я надеюсь, что это должно помочь

Похожие вопросы