Android makefile
示例
??? /** Android.mk文件必須從這一行定義開始,my-dir宏是build系統自帶的函數,返回當前目錄 */
??? LOCAL_PATH := $(call my-dir)
??? /** CLEAR_VARS是build系統自帶的變量,指示makefile腳本清除所有LOCAL_XXX變量,除了LOCAL_PATH */
??? include $(CLEAR_VARS)
??? /** LOCAL_MODULE變量必須被定義以區分模塊,所以名字必須是唯一的且不能包含任何空白,build系統會據此自動生成Lib文件名,比如,libhello-jni.so */
??? LOCAL_MODULE := hello-jni
??? /** LOCAL_SRC_FILES變量必須包含C/C++的源代碼列表,不要列出頭文件和include文件,因為build系統會自動檢查每個文件的依賴 */
??? LOCAL_SRC_FILES := hello-jni.c
??? /** BUILD_SHARED_LIBRARY是build系統自帶的變量,指示makefile腳本收集自最近一次CLEAR_VARS之后我們定義的所有LOCAL_XXX變量,并且指示生成的是Shared Library。與之相對的變量是BUILD_STATIC_LIBRARY */
??? include $(BUILD_SHARED_LIBRARY)
??? NOTE:以LOCAL_、PRIVATE_、NDK_、APP_開頭的變量以及小寫字母的變量時build系統的保留字,建議使用MY_<prefix>來定義自己的變量。
NDK宏函數
??? 調用:$(call <function>)
??? my-dir:返回當前Android.mk文件所在的目錄
??? all-subdir-makefiles:返回在當前my-dir的所有子目錄中的Android.mk文件的列表
??? this-makefile:返回當前Android.mk的路徑
??? parent-makefile:返回上一層Android.mk的路徑
??? grand-parent-makefile:
模塊描述變量
??? LOCAL_PATH:當前基準路徑
??? LOCAL_MODULE:模塊名稱,必須唯一
??? LOCAL_SRC_FILES:構建模塊的源文件列表
??? LOCAL_CPP_EXTENSION:C++文件擴展名,默認為.cpp
??? LOCAL_C_INCLUDES:相對于NDK根路徑的C include文件列表
??? LOCAL_CFLAGS:C和C++的編譯標志
??? LOCAL_CXXFLAGS:LOCAL_CPPFLAGS的別名
??? LOCAL_CPPFLAGS:C++的編譯標志
??? LOCAL_STATIC_LIBRARIES:鏈接的static libraries列表,僅對shared library有效
??? LOCAL_SHARED_LIBRARIES:運行時依賴的shared libraries列表
??? LOCAL_LDLIBS:額外的連接標志,比如鏈接系統庫文件libz.o,則LOCAL_LDLIBS:=-lz
??? LOCAL_ALLOW_UNDEFINED_SYMBOLS:允許沒有定義的符號
??? LOCAL_ARM_MODE、LOCAL_ARM_NEON、LOCAL_DISABLE_NO_EXECUTE看不懂
轉載于:https://www.cnblogs.com/babyking/archive/2011/03/14/1984112.html
總結
以上是生活随笔為你收集整理的Android makefile的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: VB2010网络通信服务器
- 下一篇: 廖雪峰 练习 把用户输入的不规范的英文名