前天弄好了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的参数的注释,参看
如何写makefile文件电子书
运行截图:
Makefile 文件是非常强大滴,继续学习中。