我想使用arm-linux-gnueabi-gcc从C建立一个静态的hello世界,而不是为此使用NDK独立工具链或Codesourcery。

在Ubuntu中...

我已经完成以下工作:

sudo apt-get install gcc-arm-linux-gnueabi

我创建了一个像这样的hi.c:
#include <stdio.h>

int main(int argc, char** argv) {
   printf("hello world\n");
   return 0;
}

我已经像这样编译它:
arm-linux-gnueabi-gcc -static hi.c -o hi

我在这样的模拟器上运行它:
adb push hi /data/hi
adb shell /data/hi

但是,我得到了:
[1]   Illegal instruction     /data/hi

我忘记了哪一步?根据过去的经验,这个“应该”已经奏效,但是我显然搞砸了。

最佳答案

尝试指定体系结构/cpu。听起来编译器正在创建具有比仿真器能够处理的更高的体系结构版本的代码。

这可能起作用:

arm-linux-gnueabi-gcc -static -march=armv5 hi.c -o hi

关于android - 使用arm-linux-gnueabi-gcc为Android交叉编译静态C hello世界,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9324772/

10-09 06:34
查看更多