Android.mk可以生產的基本檔案
LOCAL_PATH:P=$(call my-dir) //回傳該Android.mk所在目錄的路徑,必須放在第一行 定義了當前模塊的相對路徑
include $(CLEAR_VARS) //清除變數 清空當前環境變數
LOCAL_MODULE:=test //生產目標檔案 編譯生成的目標名稱
LOCAL_SRC_FILES:=test.c //源檔案 編譯該模塊需要的源檔案
LOCAL_MODULE_PATH:= $(LOCAL_PATH) //把目標檔案生成在當前目錄下
include $(BUILD_EXECUTABLE) //生成目標格式 編譯所生成的目標檔案格式
使用連接符來編譯多個檔案
LOCAL_SRC_FILES:=test.c
test2.c
my-dir的定義
build/core/definitions.mk
define my-dir
$(strip \
$(eval LOCAL_MODULE_MAKEFILE := $$(lastword $$(MAKEFILE_LIST))) \
$(if $(filter $(BUILD_SYSTEM)/% $(OUT_DIR)/%,$(LOCAL_MODULE_MAKEFILE)), \
$(error my-dir must be called before including any other makefile.) \
, \
$(patsubst %/,%,$(dir $(LOCAL_MODULE_MAKEFILE))) \
) \
)
endef
MAKEFILE_LIST :在編譯的時候,把當前目錄下的所有Android.mk加載到這個里面
lastword:取最后的MAKEFILE
這個環境變數中是否包含LOCAL_MODULE_MAKEFILE,如果包含,則Android.mk有問題,列印錯誤:error my-dir must be called before including any other makefile,沒有錯誤,則回傳當前Android.mk的所在目錄,
2.清空所有的環境變數:build/core/clear_vars.mk 這個目錄下的所有環境變數
3.生產格式,二進制檔案
編程中我們會遇到多少挫折?表放棄,沙漠盡頭必是綠洲,
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/7469.html
標籤:Android
上一篇:envsetup.sh編譯程序
下一篇:Android.mk(一)
