安卓之Android.mk多檔案以及動態庫編譯
阿新 • • 發佈:2018-11-22
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) #編譯之後的檔案型別
####共勉#####