zoukankan      html  css  js  c++  java
  • 生成ARM汇编


    使用ndk即可生成arm汇编


    1.首先写好hello.c


    2.编写makefile
    1. #ndk根目录
    2. NDK_ROOT=E:Androidandroid-ndk-r10b
    3. #编译器根目录
    4. TOOLCHAINS_ROOT=$(NDK_ROOT)/toolchains/arm-linux-androideabi-4.6/prebuilt/windows-x86_64
    5. #编译器目录
    6. TOOLCHAINS_PREFIX=$(TOOLCHAINS_ROOT)/bin/arm-linux-androideabi
    7. #头文件搜索路径
    8. TOOLCHAINS_INCLUDE=$(TOOLCHAINS_ROOT)/lib/gcc/arm-linux-androideabi/4.6/include-fixed
    9. #SDK根目录
    10. PLATFROM_ROOT=$(NDK_ROOT)/platforms/android-14/arch-arm
    11. #sdk头文件搜索路径
    12. PLATFROM_INCLUDE=$(PLATFROM_ROOT)/usr/include
    13. #sdk库文件搜索路径
    14. PLATFROM_LIB=$(PLATFROM_ROOT)/usr/lib
    15. #文件名称
    16. MODALE_NAME=hello
    17. #删除
    18. RM=del
    19. #编译选项
    20. FLAGS=-I$(TOOLCHAINS_INCLUDE)
    21. -I$(PLATFROM_INCLUDE)
    22. -L$(PLATFROM_LIB)
    23. -nostdlib
    24. -lgcc
    25. -Bdynamic
    26. -lc
    27. #所有obj文件
    28. OBJS=$(MODALE_NAME).o
    29. $(PLATFROM_LIB)/crtbegin_dynamic.o
    30. $(PLATFROM_LIB)/crtend_android.o
    31. #编译器链接
    32. all:
    33. $(TOOLCHAINS_PREFIX)-gcc $(FLAGS) -c $(MODALE_NAME).s -o $(MODALE_NAME).o
    34. $(TOOLCHAINS_PREFIX)-gcc $(FLAGS) $(OBJS) -o $(MODALE_NAME)
    35. old:
    36. $(TOOLCHAINS_PREFIX)-gcc $(FLAGS) -E $(MODALE_NAME).c -o $(MODALE_NAME).i
    37. $(TOOLCHAINS_PREFIX)-gcc $(FLAGS) -S $(MODALE_NAME).i -marm -o $(MODALE_NAME).s
    38. $(TOOLCHAINS_PREFIX)-gcc $(FLAGS) -c $(MODALE_NAME).s -o $(MODALE_NAME).o
    39. $(TOOLCHAINS_PREFIX)-gcc $(FLAGS) $(OBJS) -o $(MODALE_NAME)
    40. #删除所有.o文件
    41. clean:
    42. $(RM) *.o
    43. #安装程序到手机
    44. install:
    45. adb push $(MODALE_NAME) /data/local/tmp
    46. adb shell chmod 755 /data/local/tmp/$(MODALE_NAME)
    47. adb shell /data/local/tmp/$(MODALE_NAME)
    48. #运行程序
    49. run:
    50. adb shell /data/local/tmp/$(MODALE_NAME)

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


    make即可编译arm汇编


    Using as--the GNU Assembler 一份GNU arm汇编的文档





  • 相关阅读:
    问题 A: 【递归入门】全排列
    第一个struct2程序(2)
    第一个struct2程序
    Java学习 第二节
    重学Java
    Servlet过滤器
    struct2
    Java web struct入门基础知识
    one by one 项目 part 6
    软件工程导论 桩模块和驱动模块
  • 原文地址:https://www.cnblogs.com/bingghost/p/5838688.html
Copyright © 2011-2022 走看看