ndk生成ARM汇编(附代码)

来源:互联网 发布:centos 开启ssh 编辑:程序博客网 时间:2024/05/14 12:12
转自:http://www.cnblogs.com/bingghost/p/5838688.html
使用ndk即可生成arm汇编
1.首先写好hello.c
#include <stdio.h>int main(int argc, char const *argv[]){int a=1024;printf("hello=%d\n", a);return 0;}
2.编写makefile
#ndk根目录NDK_ROOT=E:/android/ndk/android-ndk-r10b#编译器根目录TOOLCHAINS_ROOT=$(NDK_ROOT)/toolchains/arm-linux-androideabi-4.6/prebuilt/windows#编译器目录TOOLCHAINS_PREFIX=$(TOOLCHAINS_ROOT)/bin/arm-linux-androideabi#头文件搜索路径TOOLCHAINS_INCLUDE=$(TOOLCHAINS_ROOT)/lib/gcc/arm-linux-androideabi/4.6/include-fixed#SDK根目录PLATFROM_ROOT=$(NDK_ROOT)/platforms/android-14/arch-arm#sdk头文件搜索路径PLATFROM_INCLUDE=$(PLATFROM_ROOT)/usr/include#sdk库文件搜索路径PLATFROM_LIB=$(PLATFROM_ROOT)/usr/lib#文件名称MODALE_NAME=hello#删除RM=rm#编译选项FLAGS=-I$(TOOLCHAINS_INCLUDE) \      -I$(PLATFROM_INCLUDE)   \      -L$(PLATFROM_LIB) \      -nostdlib \      -lgcc \      -Bdynamic \      -lc#所有obj文件OBJS=$(MODALE_NAME).o \     $(PLATFROM_LIB)/crtbegin_dynamic.o \     $(PLATFROM_LIB)/crtend_android.o #编译器链接all:$(TOOLCHAINS_PREFIX)-gcc $(FLAGS) -c $(MODALE_NAME).s -o $(MODALE_NAME).o$(TOOLCHAINS_PREFIX)-gcc $(FLAGS) $(OBJS) -o $(MODALE_NAME)old:$(TOOLCHAINS_PREFIX)-gcc $(FLAGS) -E $(MODALE_NAME).c -o $(MODALE_NAME).i$(TOOLCHAINS_PREFIX)-gcc $(FLAGS) -S $(MODALE_NAME).i -marm -o $(MODALE_NAME).s$(TOOLCHAINS_PREFIX)-gcc $(FLAGS) -c $(MODALE_NAME).s -o $(MODALE_NAME).o$(TOOLCHAINS_PREFIX)-gcc $(FLAGS) $(OBJS) -o $(MODALE_NAME)#删除所有.o文件clean:$(RM) *.o$(RM) *.i$(RM) $(MODALE_NAME)#安装程序到手机install:adb push $(MODALE_NAME) /data/local/tmpadb shell chmod 755 /data/local/tmp/$(MODALE_NAME)adb shell /data/local/tmp/$(MODALE_NAME) #运行程序run:adb shell /data/local/tmp/$(MODALE_NAME) 

make old
即可通过c来生成汇编文件


make即可编译arm汇编


Using as--the GNU Assembler 一份GNU arm汇编的文档
http://sourceware.org/binutils/docs/as/index.html
源码下载:


0 0
原创粉丝点击