【发布时间】:2013-01-18 19:14:02
【问题描述】:
我正在 Ubuntu Linux 10.0.4 上使用 Android NDK Linux build 编译一个简单的程序。
//no includes!!!
int main()
{
int a = 1, b = 2, c = -1;
return a + b + c - ( a + b + c);
}
当我为 gcc 运行这个 bash 脚本时,
bin='/media/sdb/android-ndk-r8d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin'
rm -r ./obj/*.*
$bin/arm-linux-androideabi-gcc -c ./main.c -o ./obj/main.o
$bin/arm-linux-androideabi-gcc ./obj/main.o -o ./obj/main.exe
gcc 的输出给出了来自ld (arm-linux-androideabi-ld) 的消息,它以7 (second comma-delimited is ARM) 信号终止。
这个简单的程序甚至无法在 Linux 上编译,请帮助!
【问题讨论】:
-
main.o 是第一个命令创建的已经可执行的二进制文件。我不知道你想用第二个实现什么。
-
我不知道 main.o 文件是可执行的。不相关,对于引用的库 (.a) 文件的稳健性。似乎需要先编译 ./main.c 然后 ./obj/main.o [with any includes]
-
对不起我的错误,我看到它是(没有-c)$bin/arm-linux-androideabi-gcc ./main.c -o ./obj/main.o
-
我最好的猜测是你的编译触发了另一个 ld,而不是来自 ndk 的那个。
-
顺便说一下,不要在路径中的任何地方使用波浪号
~。
标签: c gcc android-ndk