我正在尝试使用ndk 8为mips构建独立工具链,方法是“docs \ STANDALONE-TOOLCHAIN.html”,但是当我运行以下命令时“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中构建独立的工具链
此致 阿赫桑
答案 0 :(得分: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
,并且从此过上幸福的生活。
答案 1 :(得分:2)
简短版:
使用您选择的文本编辑器将文件expr --
中的expr
替换为$NDK_HOME/build/tools/prebuilt-common.sh
。然后按照文档记录运行。
长版:
您在输出中看到的语法错误来自android ndk参数解析器的实现。编写此脚本的人决定使用带有正则表达式的expr
命令来解析参数而不是使用echo $1 | grep ...
。它看起来更清晰(即使在ndk的其他脚本中使用echo-grep),但expr
不是最标准的命令。它有一组与POSIX规范中详述的所有实现相同的参数,其他所有参数都可以以不同方式实现或根本不实现。
如果您在第392行查看文件$NDK_HOME/build/tools/prebuilt-common.sh
(可能取决于NDK版本),您的代码如下:
param=`expr -- "$1" : '^\([^\-].*\)$'`
请注意expr
的参数如何由--
分隔。这是在POSIX specification of expr
中指定的不。在任何Linux man中都没有提到它。它之所以有效,是因为某些主机系统具有expr
命令,可将--
识别为&#34;停止解析参数&#34;。所以这显然是使用未记录的功能。
你似乎使用Git-bash - 由git-scm.org发布的mingw32-git附带的bash版本。此版本不支持解析库中断的整个参数的expr --
语法。要修复它 - 只需在prebuilt-common.sh文件中将所有expr --
替换为expr
。它仍会向你发出一些警告,但脚本应该有效。
答案 2 :(得分:1)
当涉及用C编写的库的交叉编译时,我们需要NDK。但是在Windows上编译这种类型的库是非常困难的,有时会卡住,而且总是令人沮丧。我建议你在Linux上尝试编译。它肯定会被编译。 Linux / Mac是交叉编译的最佳平台。我希望它应该有所帮助