Android 成功交叉编译C文件


前天弄好了NDK的开发环境,做了jni 的开发测试。由于没有在实际的项目中使用NDK开发,不知道下面该弄点什么。想起之前做ril的时候,调试3G模块时,自己写的AT command的交互程序的编译是放到Android源码中利用Android.mk编译的。一直想写make文件独立于android源码编译C/C++.

那就开始了!交叉编译器就用 NDK自己的。

先贴上makefile。

cc=/work/tool/android-ndk-r5/toolchains/arm-eabi-4.4.0/prebuilt/linux-x86/bin/arm-eabi-gcc
pre-path=/work/tool/android-ndk-r5/platforms/android-8/arch-arm/usr
lib=$(pre-path)/lib
ic=$(pre-path)/include
extra_objs:=$(pre-path)/lib/crtend_android.o $(pre-path)/lib/crtbegin_static.o
LDFLAGS +=-nostdlib
LDFLAGS += -lc -ldl -Bdynamic -Wl,-dynamic-linker,/system/bin/linker
shard: shard.o
 $(cc) $(LDFLAGS) $(extra_objs) -g -o0 -Wall -std=c99 -I$(ic)  -L$(lib) -o shard shard.o
shard.o: shard.c
 $(cc) -I$(ic)  -L$(lib) -c shard.c
.PHONY:clean
clean:
 rm shard shard.o

C文件很简单

#include <string.h>
#include <stdio.h>
static char* s_string="我是 辉辉'\n'我的邮箱lzh20044178@163.com";
int main()
{
    printf("%s\n", s_string);
    return 0;
}

对此makefile的参数的注释,参看

的 2.3 Study Hard

如何写makefile文件电子书

点击这里下载makefile文件电子书。

运行截图:

Makefile 文件是非常强大滴,继续学习中。

相关内容