Frage an windows-7, toolchain, android – So erstellen Sie eine eigenständige Android-Toolchain in Windows 7

3

Ich versuche, eine eigenständige Toolchain mit ndk 8 für mips zu erstellen, indem ich "docs \ STANDALONE-TOOLCHAIN.html" befolge, aber wenn ich den Befehl "make-standalone-toolchain.sh --platform = android-14 --install-dir =" ausführe / tmp / my-android-toolchain "In der Eingabeaufforderung sind folgende Fehler aufgetreten

<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>

Kann irgendein Körper leiten, was ich falsch mache? oder wie könnte ich eine eigenständige Toolchain in Windows 7 erstellen?

Grüße Ahsan

Haben Sie das jemals herausgefunden (da niemand eine Antwort eingereicht hat)? BonanzaDriver

Deine Antwort

3   die antwort
1

die in C geschrieben sind, benötigen wir NDK. Aber das Kompilieren einer solchen Art von Bibliothek unter Windows ist sehr schwierig und manchmal stecken geblieben und es ist immer frustrierend. Ich rate Ihnen, die Kompilierung unter Linux auszuprobieren. Es wird definitiv zusammengestellt. Linux / Mac sind die besten Plattformen für die Cross-Kompilierung. Ich hoffe es sollte helfen

4
<code>$ E:>Installed_SDKs/android-ndk-r9d/build/tools/make-standalone-toolchain.sh --platform=android-14 --arch=mips --system=windows-x86_64
</code>

/tmp/ndk-/mipsel-linux-android-4.6.tar.bz2 für mich; jetzt kann ich diese datei entpackenE:\Installed_SDKs\android-ndk-r8\build\tools\mytool und leben glücklich bis ans Ende.

@ Alex Cohn Vielen Dank Vyshakh Amarnath
Wenn Sie eine neuere Version des NDK verwenden, müssen Sie --system = windoes-x86_64 durch --system = windows durch NDK r10d ersetzen (und wahrscheinlich auch frühere Versionen von NDK r10). Pooks
2

Kurze Version:

ersetzenexpr -- mitexpr im Ordner$NDK_HOME/build/tools/prebuilt-common.sh mit Texteditor Ihrer Wahl. Führen Sie dann wie dokumentiert aus.

Lange Version:

Die Syntaxfehler, die Sie in der Ausgabe sehen, die von der android ndk-Implementierung des Argument-Parsers kommt. Leute, die dieses Skript geschrieben haben, haben sich für die Verwendung entschiedenexpr Befehl mit regulären Ausdrücken zum Parsen von Argumenten anstelle vonecho $1 | grep .... Es sieht auf jeden Fall viel sauberer aus (obwohl echo-grep in anderen Skripten von ndk verwendet wird), aberexpr ist nicht der Standardbefehl. Es hat eine Reihe von Argumenten, die allen Implementierungen gemeinsam sind, wie in der POSIX-Spezifikation beschrieben, und alles andere könnte anders oder überhaupt nicht implementiert werden.

Wenn Sie in die Datei schauen$NDK_HOME/build/tools/prebuilt-common.sh In Zeile 392 (abhängig von der NDK-Version) schreiben Sie wie folgt:

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

Beachten Sie, wie Argumente vonexpr sind getrennt durch--. Das istnicht in POSIX angegebenSpezifikation vonexpr. Es wird nicht einmal erwähntLinux-Mann. Es funktioniert nur, weil einige Host-Systeme habenexpr Befehl, der erkennt-- als "aufhören Argumente zu analysieren". Dies ist also eindeutig ein Fall der Verwendung einesundokumentierte Funktionalität.

Sie scheinen Git-bash zu verwenden - eine Version von bash, die mit mingw32-git geliefert und von git-scm.org vertrieben wird. Diese Version unterstützt nichtexpr -- Die Syntax für das gesamte Argument beim Parsen der Bibliothek bricht ab. Um das Problem zu beheben, tauschen Sie einfach alle ausexpr -- mitexpr in der Datei prebuilt-common.sh. Es werden trotzdem einige Warnungen ausgegeben, aber das Skript sollte funktionieren.

Dieser Trick hat bei mir funktioniert. Ich benutze Git-Bash in Windows 7-Maschine. Der folgende Befehl hat bei mir funktioniert:make-standalone-toolchain.sh --platform=android-19 --arch=arm --install-dir=/root/iqbal/toolchain --ndk-dir=../../ --system=windows-x86_64 Bens.Raouf

Verwandte Fragen