【Android本地開發技術:編譯指令碼】Application.mk

來源:互聯網
上載者:User

標籤:

郭孝星
微博:郭孝星的新浪微博
郵箱:[email protected]
部落格:http://blog.csdn.net/allenwells
Github:https://github.com/AllenWells

一 Application.mk檔案的作用和特點

作用:描述應用程式中所需要的模組(靜態庫或動態庫)。

位置:Application.mk通常放在PROJECT/jni/Applicatio.mk,PROJECT指的是項目路徑。

二 Application.mk檔案的變數2.1 APP_PROJECT_PATH

必選變數,並且會給出應用程式工程的根目錄的一個絕對路徑。

2.2 APP_MODULES

可選變數,如果沒有定義,這個模組名字就被定義在Android.mk檔案的LOCAL_MODULE中,NDK將由Android.mk中聲明的預設模組編譯,並且包含所有的子檔案(Makefile檔案),NDK會自動計算模組依賴。如果定義了,它必須是一個空格分隔的模組列表。

2.3 APP_OPTM

可選變數,用來定義release或debug,在編譯應用程式模組的時候,可以用來改變優先順序。release模式是預設的,並且會產生高度最佳化的二進位代碼。debug模式產生的是未最佳化的二進位代碼,也可以檢測很多的bug,也可以用調試。

注意:可以調試release和debug版二進位,但release版構建傾向於調試回話中提供較少資訊,一些變數被最佳化且不能被檢測,代碼重新排序可能導致代碼步進變得困難,堆疊追蹤可能不可靠。

2.4 APP_CFLAGS

一個C編譯器開關集合,在編譯任意模組的任意C或C++原始碼時傳遞。它可以用於改變一個給定的應用程式需要依賴的模組的構建,而不是修改它自身的Android.mk檔案。

2.5 APP_BUILD_SCRIPT

預設,NDK構建系統將在 (APPPROJECTPATH)/jni下尋找一個名為Android.mk的文件。即,對於這個文件(APP_PROJECT_PATH)/jni/Android.mk
如果你想重載這個行為,你可以定義APP_BUILD_SCRIPT指向一個不同的構建指令碼。一個非絕對路徑將總是被解析為相對於NDK頂級目錄的路徑。

2.6 APP_ABI

預設情況下,NDK的編譯系統根據 “armeabi” ABI產生機器代碼。可以使用APP_ABI 來選擇一個不同的ABI。

舉例

在ARMv7的裝置上支援硬體FPU指令。可以使用APP_ABI := armeabi-v7支援IA-32指令集,可以使用APP_ABI := x86同時支援這三種,可以使用APP_ABI := armeabi armeabi-v7a x86。

2.7 APP_STL

預設情況下,NDK構建系統提供由Android系統給出的最小C++執行階段程式庫(/system/lib/libstdc++.so)的C++標頭檔。 然而,NDK帶有另一個C++實現,你可以在你自己的應用程式中使用或連結它。定義APP_STL可以作以下選擇:

APP_STL := stlport_static         static STLport libraryAPP_STL := stlport_shared       hared STLport libraryAPP_STL := system                    default C++ runtime library

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

【Android本地開發技術:編譯指令碼】Application.mk

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.