您的位置:首页 > 移动开发 > Android开发

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

2013-04-14 14:55 399 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: