3

「docs\STANDALONE-TOOLCHAIN.html」に従って、ndk 8 for mips を使用してスタンドアロン ツールチェーンを構築しようとしていますが、「make-standalone-toolchain.sh --platform=android-14 --install-dir=」コマンドを実行すると、 /tmp/my-android-toolchain" コマンドプロンプトで次のエラーが発生しました

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.

私が間違っていることを体で導くことができますか?または、Windows 7 でスタンドアロン ツールチェーンを構築するにはどうすればよいですか

よろしくアーサン

4

3 に答える 3

2

ショートバージョン:

選択したテキスト エディターexpr --exprファイル内に置き換えます。$NDK_HOME/build/tools/prebuilt-common.sh次に、ドキュメントに従って実行します。

ロングバージョン

出力に表示される構文エラーは、引数パーサーの android ndk 実装からのものです。このスクリプトを書いた人は、 を使用するexpr代わりに、 command と正規表現を使用して引数を解析することにしecho $1 | grep ...ました。これは確かに (ndk の他のスクリプトで echo-grep が使用されていても) よりクリーンに見えますがexpr、最も標準的なコマンドではありません。POSIX仕様で詳述されているように、すべての実装に共通の一連の引数があり、他のすべては異なる方法で実装されるか、まったく実装されない可能性があります。

ファイル内$NDK_HOME/build/tools/prebuilt-common.shの 392 行目 (NDK のバージョンによって異なります) を見ると、次のようにコーディングします。

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

の引数がexprで区切られていることに注意してください--。これはの POSIX仕様では規定されていませんLinux manにも言及されていません。一部のホストシステムには、「引数の解析を停止する」と認識するコマンドがあるため、機能します。したがって、これは明らかに文書化されていない機能を使用する場合です。exprexpr--

あなたはGit-bashを使用しているようです - mingw32-gitに付属し、git-scm.orgによって配布されているbashのバージョン。expr --このバージョンでは、引数解析ライブラリ ブレーク全体に対する構文はサポートされていません。それを修正するには、すべてexpr --exprprebuilt-common.sh ファイルに置き換えます。それでもいくつかの警告がスローされますが、スクリプトは機能するはずです。

于 2015-07-16T10:28:21.153 に答える
1

C で記述されたライブラリのクロス コンパイルに関しては、NDK が必要です。しかし、そのようなタイプのライブラリを Windows でコンパイルするのは非常に難しく、時々動かなくなり、常にイライラします。Linux でコンパイルを試すことをお勧めします。間違いなくコンパイルされます。Linux/Mac は、クロス コンパイルに最適なプラットフォームです。それが役立つことを願っています

于 2014-09-08T10:09:22.510 に答える