在Android(ARM)for Android(ARM)上编译时出现GCC错误

时间:2013-05-14 10:51:51

标签: java android gcc compilation

我想在Android(ARM)上为Android(ARM)编译C代码 我设法在电话上运行了一个交叉编译的gcc(arm-eabi-gcc:http://code.google.com/p/native-android-development/downloads/detail?name=android-gcc-4.4.0.tar.gz&can=2&q=)。
我按以下步骤编译:
1.无需组装编译(arm-eabi-gcc -S)。这会生成一个.s文件 我在没有链接的情况下组装(as -o)。这会生成我的.o文件 3.我链接生成的o文件(ld)。这生成我的可执行文件

我想单独调用Compile和Link的步骤。步骤1.和2.可以一步解决,但这会引发更多错误 这样我可以编译和链接文件而不包含。

我的问题发生在包含。当我尝试编译一个简单的Hello World程序时:

#include <stdio.h>

int main() {
    printf("Hello World\n");
    return 0;
}

我收到错误。我用这种方式打电话给Gcc:

D/Command(26775): $MyApp$/files/strace
D/Command(26775): -f
D/Command(26775): -o
D/Command(26775): $MyApp$/files/compile_log0.txt
D/Command(26775): $MyApp$/files/android-gcc-4.4.0/bin/arm-eabi-gcc
D/Command(26775): -S
D/Command(26775): -Wall
D/Command(26775): --sysroot=$MyApp$/files/android-gcc-4.4.0/sysroot/usr
D/Command(26775): $MyApp$/files/file0.c

但是会出现以下错误:

D/Command Error(26775): In file included from $MyApp$/files/file0.c:1:
D/Command Error(26775): $MyApp$/files/android-gcc-4.4.0/bin/../lib/gcc/arm-eabi
/4.4.0/include-fixed/stdio.h:50:23: error: sys/cdefs.h: No such file or directory
D/Command Error(26775): $MyApp$/files/android-gcc-4.4.0/bin/../lib/gcc/arm-eabi
/4.4.0/include-fixed/stdio.h:51:24: error: sys/_types.h: No such file or directory
D/Command Error(26775): In file included from $MyApp$/files/file0.c:1:
D/Command Error(26775): $MyApp$/files/android-gcc-4.4.0/bin/../lib/gcc/arm-eabi
/4.4.0/include-fixed/stdio.h:163: error: expected '=', ',', ';', 'asm' or 
'__attribute__' before 'extern'
D/Command Error(26775): $MyApp$/files/android-gcc-4.4.0/bin/../lib/gcc/arm-eabi
/4.4.0/include-fixed/stdio.h:232: error: expected '=', ',', ';', 'asm' or 
'__attribute__' before '__BEGIN_DECLS'
D/Command Error(26775): $MyApp$/files/android-gcc-4.4.0/bin/../lib/gcc/arm-eabi
/4.4.0/include-fixed/stdio.h:382: error: expected '=', ',', ';', 'asm' or 
'__attribute__' before '__BEGIN_DECLS'
D/Command Error(26775): $MyApp$/files/android-gcc-4.4.0/bin/../lib/gcc/arm-eabi
/4.4.0/include-fixed/stdio.h:393: error: expected '=', ',', ';', 'asm' or 
'__attribute__' before 'static'

我不知道如何解决这个错误 我知道,例如,android-gcc-4.4.0 / bin没有子目录,所以搜索bin的子目录会引发错误,但我不知道,如何在调用Gcc时正确链接这些文件。
我虽然--sysroot应该解决这个问题,但没有帮助。

任何帮助表示赞赏。
在此先感谢。

0 个答案:

没有答案