我正在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上编译,请帮忙!
答案 0 :(得分:1)
我在ubuntu 12.4中安装了静态工具链
sudo apt-get install gcc-arm-linux-gnueabi // install this toolchain
arm-linux-gnueabi-gcc -static -o main.exe main.c // this way compile ur binary
通过Android机器中的adb复制并运行
./main.exe
这适用于我的Android手机。
修改强>
表示10.04
sudo add-apt-repository ppa:linaro-maintainers/toolchain
sudo apt-get update
sudo apt-get install gcc-arm-linux-gnueabi
<强> EDIT2:强> 它的静态编译在这里它不使用仿生代码,它通过将它们复制到ELF中来包含库。
如果您想进行动态编译或想要依赖仿生代码,请使用
$ NDK / docs / STANDALONE-TOOLCHAIN.html https://android.googlesource.com/platform/ndk/+/master/docs/STANDALONE-TOOLCHAIN.html