www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 公眾號(hào)精選 > 嵌入式云IOT技術(shù)圈
[導(dǎo)讀]點(diǎn)擊上方嵌入式開發(fā)圈記得關(guān)注我們哦! 1、設(shè)置當(dāng)前模塊的編譯路徑為當(dāng)前文件夾路徑 LOCAL_PATH := $(call my-dir) 2、清理(可能由其他模塊設(shè)置過的)編譯環(huán)境中用到的變量 include $(CLEAR_VARS) 3、模塊編譯變量 變量 用途 LOCAL_SRC_FILES 當(dāng)前模塊包含的源

點(diǎn)擊上方嵌入式開發(fā)圈記得關(guān)注我們哦!

1、設(shè)置當(dāng)前模塊的編譯路徑為當(dāng)前文件夾路徑

LOCAL_PATH := $(call my-dir)

2、清理(可能由其他模塊設(shè)置過的)編譯環(huán)境中用到的變量

include $(CLEAR_VARS)

3、模塊編譯變量

 變量 用途 LOCAL_SRC_FILES 當(dāng)前模塊包含的源代碼文件 LOCAL_MODULE 當(dāng)前模塊的名稱,這個(gè)名稱應(yīng)當(dāng)是唯一的,模塊間的依賴關(guān)系就是通過這個(gè)名稱來引用的 LOCAL_C_INCLUDES C/C++ 語言需要的頭文件的路徑 LOCAL_STATIC_LIBRARIES 當(dāng)前模塊在靜態(tài)編譯時(shí),需要的靜態(tài)庫 LOCAL_SHARED_LIBRARIES 當(dāng)前模塊在運(yùn)行時(shí)依賴的動(dòng)態(tài)庫 LOCAL_CFLAGS C/C++編譯器的參數(shù)  include $(BUILD_EXECUTABLE) # -I$(LOCAL_C_INCLUDES) 指定頭文件搜索路徑 # -l$(LOCAL_SHARED_LIBRARIES) 指令鏈接的動(dòng)態(tài)庫 gcc $(LOCAL_CFLAGS) $(LOCAL_SRC_FILES) -o $(LOCAL_MODULE) -I$(LOCAL_C_INCLUDES) $(LOCAL_STATIC_LIBRARIES) -l$(LOCAL_SHARED_LIBRARIES)   LOCAL_JAVA_LIBRARIES 當(dāng)前模塊依賴的Java共享庫 LOCAL_STATIC_JAVA_LIBRARIES 當(dāng)前模塊依賴的Java靜態(tài)庫 LOCAL_PACKAGE_NAME 當(dāng)前模塊的APK應(yīng)用的名稱  LOCAL_CERTIFICATE 簽署當(dāng)前應(yīng)用的證書名稱  LOCAL_MODULE_TAGS 當(dāng)前模塊所包含的標(biāo)簽,Android.mk的必選,一個(gè)模塊可以包含多個(gè)標(biāo)簽 標(biāo)簽的值可能是debug, eng, tests, samples 或 optional  build/core/definitions.mk 通常會(huì)用下面函數(shù)獲取上面環(huán)境變量的值: 提供配置編譯需要的函數(shù) $(call my-dir) 獲取當(dāng)前文件夾路徑 $(call all-subdir-java-files) 獲取當(dāng)前目錄子目錄下所有的java源代碼文件 $(call all-java-files-under, 目錄) 獲取指定目錄下的所有Java文件 $(call all-c-files-under, 目錄) 獲取指定目錄下的所有C語言文件 $(call all-Iaidl-files-under, 目錄) 獲取指定目錄下的所有 AIDL 文件 $(call all-makefiles-under, 目錄) 獲取指定目錄下的所有Make文件

4、模塊類型

BUILD_EXECUTABLE 編譯目標(biāo)機(jī)上的可執(zhí)行文件(ELF)BUILD_STATIC_LIBRARY          編譯目標(biāo)機(jī)上的靜態(tài)庫(*.a 編譯時(shí)使用)BUILD_SHARED_LIBRARY          編譯目標(biāo)機(jī)上的動(dòng)態(tài)庫文件(*.so)BUILD_JAVA_LIBRARY            編譯目標(biāo)機(jī)上的java動(dòng)態(tài)庫BUILD_STATIC_JAVA_LIBRARY     編譯目標(biāo)機(jī)上的java靜態(tài)庫BUILD_PACKAGE                 編譯目標(biāo)機(jī)上的java包

5、幾個(gè)常見的模板

5.1、編譯可執(zhí)行程序的模板

LOCAL_PATH := $(call my-dir)#include $(CLEAR_VARS)LOCAL_SRC_FILES:= main.cLOCAL_MODULE:= test_exe#LOCAL_C_INCLUDES :=#LOCAL_STATIC_LIBRARIES :=#LOCAL_SHARED_LIBRARIES :=include $(BUILD_EXECUTABLE)
(菜鳥級(jí)別解釋::=是賦值的意思,$是引用某變量的值) LOCAL_SRC_FILES中加入源文件路徑,LOCAL_C_INCLUDES 中加入所需要包含的頭文件路徑, LOCAL_STATIC_LIBRARIES加入所需要鏈接的靜態(tài)庫(*.a)的名稱, LOCAL_SHARED_LIBRARIES中加入所需要鏈接的動(dòng)態(tài)庫(*.so)的名稱, LOCAL_MODULE表示模塊最終的名稱, BUILD_EXECUTABLE表示以一個(gè)可執(zhí)行程序的方式進(jìn)行編譯。

5.2、編譯靜態(tài)庫的模板

LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS)  LOCAL_SRC_FILES:= \ helloworld.cLOCAL_MODULE:= libtest_static#LOCAL_C_INCLUDES :=#LOCAL_STATIC_LIBRARIES :=#LOCAL_SHARED_LIBRARIES :=include $(BUILD_STATIC_LIBRARY)一般的和上面相似,BUILD_STATIC_LIBRARY表示編譯一個(gè)靜態(tài)庫。

5.3、編譯動(dòng)態(tài)庫的模板

LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_SRC_FILES:= \      helloworld.cLOCAL_MODULE:= libtest_sharedTARGET_PRELINK_MODULES := false#LOCAL_C_INCLUDES :=#LOCAL_STATIC_LIBRARIES :=#LOCAL_SHARED_LIBRARIES :=include $(BUILD_SHARED_LIBRARY) 一般的和上面相似,BUILD_SHARED_LIBRARY表示編譯一個(gè)共享庫。以上三者的生成結(jié)果分別在如下,generic依具體target會(huì)變:out/target/product/xxxx/obj/EXECUTABLEout/target/product/xxxxx/obj/STATIC_LIBRARYout/target/product/xxxx/obj/SHARED_LIBRARY  每個(gè)模塊的目標(biāo)文件夾分別為:  1.可執(zhí)行程序:XXX_intermediates  2.靜態(tài)庫:XXX_static_intermediates  3.動(dòng)態(tài)庫:XXX_shared_intermediates

5.4、編譯一個(gè)簡單apk

LOCAL_PATH := $(call my-dir)  include $(CLEAR_VARS)   # Build all java files in the java subdirectoryLOCAL_SRC_FILES := $(call all-subdir-java-files) # Name of the APK to buildLOCAL_PACKAGE_NAME := LocalPackage   # Tell it to build an APKinclude $(BUILD_PACKAGE)
韋東山老師嵌入式視頻課程推薦






商務(wù)合作

支持我請給我在看!





































免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場,如有問題,請聯(lián)系我們,謝謝!

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
關(guān)閉
關(guān)閉