1. 程式人生 > >安卓之Android.mk多檔案以及動態庫編譯

安卓之Android.mk多檔案以及動態庫編譯

1、多檔案編譯

多檔案編譯共有兩種方式:

  (1) 在Android.mk中一一新增

      LOCAL_PATH:= $(call my-dir)  #定義當前模組的相對路徑
      include $(CLEAR_VARS)      #清空當前環境變數
      LOCAL_MODULE:= test      #編譯生成的目標名稱
      LOCAL_SRC_FILES :=  test1.c \
                  test2.c \
                  test3.c
                #編譯該模組所需要的原始檔      # LOCAL_MODULE_PATH:=$(LOCAL_PATH) #在當前目錄生成該模組檔案       include $(BUILD_EXECUTABLE)   #編譯之後的檔案型別

  (2)在Android.mk中呼叫函式 

     LOCAL_PATH:= $(call my-dir)  #定義當前模組的相對路徑
      include $(CLEAR_VARS)      #清空當前環境變數
      LOCAL_MODULE:= test      #編譯生成的目標名稱
      LOCAL_C_ALL_FILES := $(call all-c-files-under) #載入所有的檔案     
      LOCAL_SRC_FILES := $LOCAL_C_ALL_FILES       
     # LOCAL_SRC_FILES := test.c    #編譯該模組所需要的原始檔  
     # LOCAL_MODULE_PATH:=$(LOCAL_PATH)  #在當前目錄生成該模組檔案
      include $(BUILD_EXECUTABLE)   #編譯之後的檔案型別

 

2、一個Android.mk生成多個目標檔案,只需要在Android.mk下面做如下的操作

       LOCAL_PATH:= $(call my-dir)  #定義當前模組的相對路徑
      include $(CLEAR_VARS)      #清空當前環境變數
      LOCAL_MODULE:= test1      #編譯生成的目標名稱
      LOCAL_C_ALL_FILES := $(call all-c-files-under) #載入所有的檔案     
      LOCAL_SRC_FILES := $LOCAL_C_ALL_FILES       
     # LOCAL_SRC_FILES := test.c    #編譯該模組所需要的原始檔  
     # LOCAL_MODULE_PATH:=$(LOCAL_PATH)  #在當前目錄生成該模組檔案
      include $(BUILD_EXECUTABLE)   #編譯之後的檔案型別


      LOCAL_PATH:= $(call my-dir)  #定義當前模組的相對路徑
      include $(CLEAR_VARS)      #清空當前環境變數
      LOCAL_MODULE:= test2      #編譯生成的目標名稱
      LOCAL_C_ALL_FILES := $(call all-c-files-under) #載入所有的檔案     
      LOCAL_SRC_FILES := $LOCAL_C_ALL_FILES       
     # LOCAL_SRC_FILES := test.c    #編譯該模組所需要的原始檔  
     # LOCAL_MODULE_PATH:=$(LOCAL_PATH)  #在當前目錄生成該模組檔案
      include $(BUILD_EXECUTABLE)   #編譯之後的檔案型別
 
 

 

3、生成動態庫,操作Android.mk

      LOCAL_PATH:= $(call my-dir)  #定義當前模組的相對路徑
      include $(CLEAR_VARS)      #清空當前環境變數
      LOCAL_MODULE:= libtest      #編譯生成的目標名稱
      LOCAL_SRC_FILES :=  test1.c \
                  test2.c  \
                  test3.c
                #編譯該模組所需要的原始檔   
     # LOCAL_MODULE_PATH:=$(LOCAL_PATH)  #在當前目錄生成該模組檔案
      include $(BUILD_SHARED_LIBRARY)   #編譯之後的檔案型別

 

4、生成靜態庫,操作Android.mk

      LOCAL_PATH:= $(call my-dir)  #定義當前模組的相對路徑
      include $(CLEAR_VARS)      #清空當前環境變數
      LOCAL_MODULE:= libtest      #編譯生成的目標名稱
      LOCAL_SRC_FILES :=  test1.c \
                  test2.c  \
                  test3.c
                #編譯該模組所需要的原始檔   
     # LOCAL_MODULE_PATH:=$(LOCAL_PATH)  #在當前目錄生成該模組檔案
      include $(BUILD_STATIC_LIBRARY)   #編譯之後的檔案型別

 

####共勉#####