Android NDK编译出ARM汇编代码

Makefile

NDK_ROOT=/home/luxuan/Program/android-ndk-r15c

TOOLCHAINS_ROOT=$(NDK_ROOT)/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64

TOOLCHAINS_PREFIX=$(TOOLCHAINS_ROOT)/bin/arm-linux-androideabi

TOOLCHAINS_INCLUDE=$(TOOLCHAINS_ROOT)/lib/gcc/arm-linux-androideabi/4.9

PLATFROM_ROOT=$(NDK_ROOT)/platforms/android-21/arch-arm

PLATFROM_INCLUDE=$(PLATFROM_ROOT)/usr/include

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



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)



clean:

	$(RM) *.o

	$(RM) *.i

	$(RM) $(MODALE_NAME)

	



install:

	adb push $(MODALE_NAME) /data/local/tmp

	adb shell chmod 755 /data/local/tmp/$(MODALE_NAME)

	adb shell /data/local/tmp/$(MODALE_NAME) 



run:

	adb shell /data/local/tmp/$(MODALE_NAME) 

hello.c

#include <stdio.h>

int main(int argc, char const *argv[])

{

	int a=1,b=2;

	int c=a+b;

	printf("a+b=%d\n", c);

	return 0;

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值