Application.mk用法详解
生活随笔
收集整理的這篇文章主要介紹了
Application.mk用法详解
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Application.mk文件定義要編譯的多個(gè)變量的GNU Makefile片段,位于PROJECT/jni/目錄下,PROJECT/jni/目錄下,PROJECT/jni/目錄下,PROJECT是項(xiàng)目目錄,另一種方式放到NDK/apps/目錄的子目錄下(NDK/apps/目錄的子目錄下(NDK/apps/目錄的子目錄下(NDK/apps//Application.mk);
Application.mk枚舉并描述你的應(yīng)用需要的模塊,這些信息包括:用于針對特定平臺(tái)進(jìn)行編譯的ABI、工具鏈、要包含的標(biāo)準(zhǔn)庫(靜態(tài)和動(dòng)態(tài)STLport或默認(rèn)系統(tǒng));
Application變量
變量設(shè)置Android平臺(tái)的名稱;
eg:APP_PLATFORM := android-9
NDK構(gòu)建系統(tǒng)默認(rèn)使用armeabi ABI生成機(jī)器代碼,可以自己進(jìn)行設(shè)置,
eg:APP_ABI :=armeabi
可以了解ABI詳情
此變量用于存儲(chǔ)應(yīng)用項(xiàng)目根目錄的絕對路徑,如果Application.mk文件放在NDK/apps/<myapp>下必須設(shè)置此變量,如果放在NDK/apps/<myapp>下必須設(shè)置此變量,如果放在NDK/apps/<myapp>下必須設(shè)置此變量,如果放在PROJECT/jni/目錄下此變量可選
此變量值為release或debug,默認(rèn)為release發(fā)行模式,生成高度優(yōu)化的二進(jìn)制文件,設(shè)置debug模式生成未優(yōu)化的二進(jìn)制文件,容易進(jìn)行調(diào)試;
注:如果在AndroidMainfest.xml的聲明android:debuggable=true將導(dǎo)致此變量使用debug而非release,可以通過設(shè)置release替換默認(rèn)值;
默認(rèn)情況下,NDK構(gòu)建系統(tǒng)在jni/下查找名稱為Android.mk的文件;以通過APP_BUILD_SCRIPT定義指向構(gòu)建腳本;
默認(rèn)情況下,NDK構(gòu)建系統(tǒng)為Android系統(tǒng)提供的最小C++運(yùn)行時(shí)庫(system/lib/libstdc++.so), 說明一下,system C++運(yùn)行庫要被廢除了,很多情況下C++ STL功能無法使用。所以最好加上 APP_STL := c++_shared 這樣的腳本。NDK運(yùn)行時(shí)和功能需要的C++庫可以參考:[C++支持庫;]
https://developer.android.google.cn/ndk/guides/cpp-support.html#runtimes
從Android4.1(API Level 16)開始,Android的動(dòng)態(tài)鏈接器支持位置獨(dú)立的可執(zhí)行文件(PIE); 從Android 5.0(API Level 21)開始可執(zhí)行文件需要PIE. 默認(rèn)情況下,從android-16起ndk-build會(huì)自動(dòng)將此值設(shè)置為true,也可也同手動(dòng)設(shè)置true或false;此標(biāo)志只適用于可執(zhí)行文件,在構(gòu)建共享或靜態(tài)庫時(shí)沒有影響;
總結(jié)
以上是生活随笔為你收集整理的Application.mk用法详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: FydeOS v16 更新发布,新界面上
- 下一篇: 世界上最小的海是是什么 蚂蚁庄园12月5