Android.mk內的變量定義

Android.mk內的變量定義 函數

3.1  LOCAL_PATH 開發

一個Android.mk file首先必須定義好LOCAL_PATH變量。它用於在開發樹中查找源文件。例如: io

1.LOCAL_PATH:= $(call my-dir) 
-
 
宏函數’my-dir’, 由編譯系統提供,用於返回當前路徑(即包含Android.mk file文件的目錄) 編譯

 

3.2 include $( CLEAR_VARS) test

宏CLEAR_VARS 由編譯系統提供,指定讓GNU MAKEFILE爲你清除許多LOCAL_XXX變量(例如 LOCAL_MODULE, LOCAL_SRC_FILES,LOCAL_STATIC_LIBRARIES, 等等...),除LOCAL_PATH 。這是必要的,由於全部的編譯控制文件都在同一個GNU MAKE執行環境中,全部的變量都是全局的。 變量

 

3.3 LOCAL_SRC_FILES gcc

本次須要編譯的源文件 file

 

3.4 LOCAL_SHARED_LIBRARIES 搜索

本次編譯須要連接的動態連接庫文件,即.so文件 gc

 

3.5 LOCAL_STATIC_LIBRARIES

靜態連接庫.

 

3.6 LOCAL_C_INCLUDES

本次編譯須要包含的頭文件,一個相對於當前目錄可選的路徑名單,當編譯全部的源文件(C,C++和彙編)時,它將被添加進include搜索路徑。例如:

LOCAL_C_INCLUDES := sources/foo

或者甚至:

LOCAL_C_INCLUDES := $(LOCAL_PATH)/../foo

 

3.6 LOCAL_LDLIBS

本次編譯的連接選項,至關於gcc -l後的參數

3.7  LOCAL_CFLAGS

一樣是編譯選項,至關於gcc -O後面的參數

 

3.8 LOCAL_MODULE

生成的模塊名,這個變量必須定義,表示make後將要生成的文件的名字

 

3.9 LOCAL_PACKAGE_NAME

apk文件名

3.10 LOCAL_MODULE_TAGS :=user eng tests optional

user: 指該模塊只在user版本下才編譯

eng: 指該模塊只在eng版本下才編譯

tests: 指該模塊只在tests版本下才編譯

optional:指該模塊在全部版本下都編譯

4 include

include可Android多以這樣的形式出現,如:include $( CLEAR_VARS),include $(BUILD_SHARED_LIBRARY).其實這個include能夠理解成"執行"的意思,那麼執行什麼呢?固然是看後邊的宏了.

宏CLEAR_VARS已經在3.2節中介紹過了,表示清除一些變量.

宏BUILD_SHARED_LIBRARY表示生成共享庫,即生成.so文件

所以include $(BUILD_SHARED_LIBRARY)就是指定在/system/lib/目錄下生成一個lib$(LOCAL_MOUDULE).so文件,一樣類型的宏以下:

•CLEAR_VARS                                             清除LOCAL_xxx變量 •BUILD_SHARED_LIBRARY                     在/system/lib/目錄下生成lib$(LOCAL_MOUDULE).so文件 BUILD_STATIC_LIBRARY                         生成lib$(LOCAL_MOUDULE).a文件 •BUILD_EXECUTABLE                               在/system/bin/目錄下生成可執行文件 BUILD_PACKAGE                                      編譯成一個apk文件

相關文章
相關標籤/搜索