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