Android 下交叉编译使用(Android NDK 默认的交叉编译工具 )

Android 下交叉编译使用(Android NDK 默认的交叉编译工具 )


Android 提供了NDK编译工具,如果按照Android的文档描述编写 mk 文件,编译出库或者可执行程序这里不多做介绍
这里介绍如何使用 makefile 来编译


【交叉编译工具的生成】
 1. 下载下 NDK (Android 官网有提供)
 2. 生成交叉编译工具链
 
 Windows下,设置一下环境,简单起见添加环境变量
 在 D:\Cygwin\program\home\Administrator\.bash_profile 最后添加
 NDKROOT=/cygdrive/e/ndk/android-ndk-r8d
 export NDKROOT
 ARMROOT=/cygdrive/e/ndk/android-ndk-r8d/stand/bin
 export ARMROOT
 
 在 cygwin 中 
 cd $NDKROOT/build/tools 里
$ ./make-standalone-toolchain.sh --platform=android-8 --ndk-dir=$NDKROOT
Auto-config: --toolchain=arm-linux-androideabi-4.6
Copying prebuilt binaries...
Copying sysroot headers and libraries...
Copying libstdc++ headers and libraries...
Creating package file: /tmp/ndk-Administrator/arm-linux-androideabi-4.6.tar.bz2  //红色的就是生成的j交叉编译工具链
Cleaning up...
Done.
 等一会儿就会生成交叉编译工具,在/tmp 目录下 ***.gz
 
 把交叉编译工具拷贝过来解压
 
【使用生成的编译工具编代码】
 
1. 编写测试代码 名称是 test.c 内容你可以简单写


2. 编写 makefile
 
APP=test
TOOLCHAIN_PREFIX :=$(ARMROOT)/arm-linux-androideabi-


CC=$(TOOLCHAIN_PREFIX)gcc 
LD=$(TOOLCHAIN_PREFIX)ld 
 
PROG=test 
OBJS=test.o 
 
$(PROG):$(OBJS) 
$(CC) $(LDFLAGS) -o $@ $(OBJS)  # 注意这里需要自己用 Tab 
 
%.o:%.c 
$(CC) -c $(CFLAGS) $< -o $@  # 注意这里需要自己用 Tab 
 
clean: 
rm -rf *.o $(PROG)  # 注意这里需要自己用 Tab 

3. make 等待,奇迹发生, test生成。

我把用到的交叉编译工具放到 csdn的下载资源中去

http://download.csdn.net/detail/babyyang1213/5256837  


你可能感兴趣的:(Linux)