春山眉黛~第一次寫.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)  



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章