春山眉黛~第一次写.mk文件的学习笔记

  1. .o、.a、.so文件都是Linux下的程序函数库,【即编译好的可以供其他程序使用的代码和数据】。  
  2. 优点:程序模块化,容易重新编译,方便升级。  
  3.   
  4. 分类:  
  5. .o文件  
  6. 动态加载函数库(对应.o文件,一个.c或.cpp文件对应一个.o文件  相当于Windows里的.obj文件)  
  7.   
  8. .a文件静态函数库(对应.a文件 好多个.o合在一起,用于静态连接 多个.a可以链接生成一个out可执行文件 对应windows的exe可执行文件)  
  9.   
  10. .so共享函数库(对应.so文件,类似于Windows的dll文件)  
  11.   
  12.   
  13. ---------------------------1.c↓------------------------------  
  14. #include <stdio.h>  
  15. #include<limits.h>  
  16. void main(){  
  17. printf("\n%d"sizeof(int));  
  18. printf("\n%d"sizeof(short));  
  19. printf("\n%d"sizeof(double));  
  20.   
  21. signed  short num = SHRT_MAX;   
  22. unsigned short  numm = USHRT_MAX;  
  23. printf("%d,%d"sizeof(signed short), sizeof(unsigned short));  
  24. printf("\n%d,%d", num, numm);  
  25.   
  26. unsigned short x = 65535 + 1 + 1;  
  27. printf("%d", x);  
  28. printf("\n..............", x);  
  29. }  
  30. -----------------------------1.c↑-------------------------  
  31.   
  32.   
  33. ---------------------------Android.mk↓---------------------------  
  34. LOCAL_PATH := $(call my-dir)  
  35. include $(CLEAR_VARS)  
  36. LOCAL_SRC_FILES += 1.c   
  37. LOCAL_MODULE := zzjtestA  
  38. include $(BUILD_HOST_STATIC_LIBRARY)  
  39. -----------------------------Android.mk↑---------------------------  
  40. BUILD_HOST_STATIC_LIBRARY  
  41. BUILD_HOST_SHARED_LIBRARY  
  42. BUILD_STATIC_LIBRARY  
  43. BUILD_SHARED_LIBRARY  
  44. BUILD_EXECUTABLE  
  45. BUILD_HOST_EXECUTABLE  
  46. BUILD_PACKAGE  
  47. BUILD_PREBUILT  
  48. BUILD_MULTI_PREBUILT  
  49. BUILD_HOST_PREBUILT  
  50. BUILD_JAVA_LIBRARY  
  51. BUILD_STATIC_JAVA_LIBRARY  
  52. BUILD_HOST_JAVA_LIBRARY  
  53.   
  54. 通过把  include $(XXXX)  改为不同选项  
  55.   
  56. // 编译Linux平台的静态库  因为是在PC上编译安卓系统通过交叉编译  所以能生成Linux电脑可运行的动态静态库(不能在手机端运行)  
  57. 1.include $(BUILD_HOST_STATIC_LIBRARY)   
  58.    host StaticLib: zzjtestA_32 (out/host/linux-x86/obj32/STATIC_LIBRARIES/zzjtestA_intermediates/zzjtestA.a)  
  59.     
  60. 2.include $(BUILD_HOST_SHARED_LIBRARY)  
  61.    host SharedLib: zzjtestA_32 (out/host/linux-x86/obj32/lib/zzjtestA.so)  
  62.   
  63. 3.include $(BUILD_STATIC_LIBRARY)   
  64.    target StaticLib: zzjtestA_32 (out/target/product/hq6737t_66_1ha_m0/obj_arm/STATIC_LIBRARIES/zzjtestA_intermediates/zzjtestA.a)  
  65.     
  66. 4.include $(BUILD_SHARED_LIBRARY)    
  67.    target Symbolic: zzjtestA_32 (out/target/product/hq6737t_66_1ha_m0/symbols/system/lib/zzjtestA.so)  
  68.      
  69. 5.include $(BUILD_EXECUTABLE)  //手机可执行文件  
  70.    target Symbolic: zzjtestA (out/target/product/hq6737t_66_1ha_m0/symbols/system/bin/zzjtestA)  
  71.      
  72. 6.include $(BUILD_HOST_EXECUTABLE)  //PC Linux可执行文件  
  73. host Executable: zzjtestA (out/host/linux-x86/obj/EXECUTABLES/zzjtestA_intermediates/zzjtestA)  
  74. Install: out/host/linux-x86/bin/zzjtestA  
  75.   
  76.   
  77. BUILD_PACKAGE  
  78. BUILD_PREBUILT  
  79. BUILD_MULTI_PREBUILT  
  80. BUILD_HOST_PREBUILT  
  81. BUILD_JAVA_LIBRARY  
  82. BUILD_STATIC_JAVA_LIBRARY  
  83. BUILD_HOST_JAVA_LIBRARY  
  84. // 这七个选项 1.c 文件编译报错  需要其他 java文件或者 其他文件  待续........  
  85.   
  86. BUILD_PACKAGE  用于生成APK文件  
  87. 在packages\apps中的所有APP 都是通过 include $(BUILD_PACKAGE) 生成 .apk 文件  
  88. include $(CLEAR_VARS)  
  89. LOCAL_MODULE_TAGS := optional  
  90. LOCAL_SRC_FILES := $(call all-java-files-under, src)  
  91. LOCAL_PACKAGE_NAME := Gallery  
  92. include $(BUILD_PACKAGE)  
  93.   
  94.   
  95.   
  96. BUILD_PREBUILT 用于生成预编译文件 配置文件  /system/etc下的 为后续文件提供支持?  
  97. LOCAL_MODULE := tzdata-host  
  98. include $(BUILD_PREBUILT)  



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值