1. 程式人生 > >Makefile & Android.mk檔案

Makefile & Android.mk檔案

1.
列印輸出:$(warning xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)或者$(error xxxxx)
列印輸出變數的值:$(warning  $(LOCAL_SHARED_LIBRARIES))

2.
LOCAL_CFLAGS += -DAOA_DEBUG

表示執行.cpp檔案中定義AOA_DEBUG內的輸出,如:

#ifdef AOA_DEBUG
        printf("hello word");
#endif

則會執行printf語句.

3.

LOCAL_MODULE_TAGS   := optional/eng/user/tests

user: 指該模組只在user版本下才編譯

eng: 指該模組只在eng版本下才編譯

tests: 指該模組只在tests版本下才編譯

optional:指該模組在所有版本下都編譯

4.

LOCAL_SRC_FILES :=$(shell cd $(LOCAL_PATH); find . -iname '*.cpp' -o -iname '*.c')

編譯LOCAL_PATH下的所有.cpp和.c檔案,當然也可以一個一個的列出來,我通常用後者

5.
LOCAL_C_INCLUDES := $(LOCAL_PATH) \

包含路徑

6.

LOCAL_SHARED_LIBRARIES := libcore
包含動態庫

7.
LOCAL_STATIC_LIBRARIES := libcore
包含靜態庫 

LOCAL_LDFLAGS := -lpthread -lrt

8.

include $(BUILD_EXECUTABLE)
include $(BUILD_SHARED_LIBRARY)
include $(BUILD_STATIC_LIBRARY)
分別為編譯bin檔案,動態庫,靜態庫

抄的別人的:
LOCAL_PATH := $(call my-dir) 

每個Android.mk檔案必須以定義LOCAL_PATH為開始。它用於在開發tree中查詢原始檔。

巨集my-dir 則由Build System提供。返回包含Android.mk的目錄路徑。


include $(CLEAR_VARS) 

CLEAR_VARS 變數由Build System提供。並指向一個指定的GNU Makefile,由它負責清理很多LOCAL_xxx.

例如:LOCAL_MODULE, LOCAL_SRC_FILES, LOCAL_STATIC_LIBRARIES等等。但不清理LOCAL_PATH.

這個清理動作是必須的,因為所有的編譯控制檔案由同一個GNU Make解析和執行,其變數是全域性的。所以清理後才能避免相互影響。

LOCAL_MODULE    := hello-jni 

LOCAL_MODULE模組必須定義,以表示Android.mk中的每一個模組。名字必須唯一且不包含空格。

Build System會自動新增適當的字首和字尾。例如,foo,要產生動態庫,則生成libfoo.so. 但請注意:如果模組名被定為:libfoo.則生成libfoo.so. 不再加字首。

這裡注意,有時候會造成錯誤,參看該部落格中的另一篇關於mk的記錄: 

mk編譯錯誤

在某個目錄下的所有子目錄中查詢Android.mk,不包括當前目錄
$(1):要搜尋的目錄




相關推薦

Makefile & Android.mk檔案

1. 列印輸出:$(warning xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)或者$(error xxxxx) 列印輸出變數的值:$(warning  $(LOCAL_SHARED_LIBRARIES)) 2. LOCAL_CFLAGS

編寫Android.mk檔案備錄

前言:     由於目前供職於機器人公司,從事基於android系統的軟體開發,因此常常需要進行原始碼編譯(當然也可以基於機器人的sdk和android studio環境進行開發)。   進行原始碼編譯,少不了編寫Android.mk檔案。通常類比前人的Android.mk檔案修修改

android makefile android mk 分析 1

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Android Studio使用自定義的Android.mk檔案編譯ffmpegyuv-bgr

概述 最近做專案的時候,領導安排一個任務,讓測試一下,用ffmpeg中的yuv轉bgr函式的速度。之前編譯so庫大部分都是用eclipse,本次博主花了兩天時間,在Android studio上編譯並執行,在此做一下記錄。 設定Android Studio ndk 1、開啟setings

Android.mk檔案語法詳解

原文地址為:Android.mk 檔案語法詳解 轉:http://blog.sina.com.cn/s/blog_602f8770010148ce.html ===============================================================

LOCAL_MODULE_TAGS--------在Android.mk檔案裡的配置項------------

ZZZZ: http://blog.csdn.net/talking12391239/article/details/10904653 要了解Android編譯選項eng、user和userdebug的區別,需先了解下LOCAL_MODULE_TAGS這一Android.m

Android.mk 檔案語法詳解

===================================================================================== 0. Android.mk簡介: Android.mk檔案用來告知NDK Build 系統關於Sou

Android.mk檔案語法規範及使用

1.概述Android.mk編譯檔案是用來向Android NDK描述你的C,C++原始碼檔案的。具體來說:該檔案是GNU Makefile的一小部分,會被編譯系統解析一次或更多次的build系統。因此,您應儘量減少您宣告的變數,不要認為某些變數在解析過程中不會被定義。這

安卓Android.mk 檔案語法詳解

0. Android.mk簡介: Android.mk檔案用來告知NDK Build 系統關於Source的資訊。 Android.mk將是GNU Makefile的一部分,且將被Build System解析一次或多次。 所以,請儘量少的在Android.mk中宣告

NDK 編譯和使用靜態庫、動態庫; Android.mk 檔案語法詳解; Android.mk高階寫法

===================================================================================== 0. Android.mk簡介: Android.mk檔案用來告知NDK Build 系統關於Source的資訊。 Andro

Android.mk檔案語法規範——深入瞭解android平臺的jni

Android.mk是Android提供的一種makefile檔案,用來指定諸如編譯生成so庫名、引用的標頭檔案目錄、需要編譯的.c/.cpp檔案和.a靜態庫檔案等。要掌握jni,就必須熟練掌握Android.mk的語法規範。 一、Android.mk檔案的用途一個andr

android.mk檔案語法總結

LOCAL_PATH := $(call my-dir)//指定本地路徑,通常是android.mk檔案所在路徑     include $(CLEAR_VARS)//這兩行必須要     LOCAL_MODULE    := OgreGLES2Sample//指定模組名,

Android.mk入門到精通(001)——Android.mk 檔案語法詳解:神文

https://www.cnblogs.com/wainiwann/p/3837936.html 0. Android.mk簡介: Android.mk檔案用來告知NDK Build 系統關於Source的資訊。 Android.mk將是GNU Makefile的一部分,

Android.mk檔案語法詳述

介紹:------------這篇文件是用來描述你的C或C++原始檔中Android.mk編譯檔案的語法的,為了理解她們我們需要您先看完docs/OVERVIEW.html(http://hualang.iteye.com/blog/1135105)檔案來了解它的作用概覽:

Android5.1 內建第三方APK及Android.mk檔案編寫(以在amlogic5.1公版系統內建百度輸入法為例)

Android.mk檔案用來向編譯系統描述如何編譯你的原始碼。在編譯整個工程的情況下,系統所找到的所有的Android.mk將會先存入subdir_makefiles變數中,隨後一次性一次性include進整個編譯檔案中。 示例 Android.mk內容:

Android.mk 檔案語法大全

講解如下:LOCAL_PATH := $(call my-dir) 每個Android.mk檔案必須以定義LOCAL_PATH為開始。它用於在開發tree中查詢原始檔。巨集my-dir 則由Build System提供。返回包含Android.mk的目錄路徑。include $(CLEAR_VARS)CLE

專案中在Android.mk檔案中根據專案名稱選擇不同的AndroidManifest.xml檔案 && 如何使用系統設定的日期顯示格式

專案中根據專案名稱選擇不同的AndroidManifest.xml檔案 MY_PROJECT_NAME := $(subst full_,,$(TARGET_PRODUCT)) ifeq ($(strip $(MY_PROJECT_NAME)), xxxxxx)# xxxx

ndk開發中的Android.mk檔案與Application.mk詳解及例項

Android.mk檔案的作用: An Android.mk file is written to describe your sources to the build system. 中文意思是:寫一個Android.mk檔案是為了向生成系統描述你的原始碼。

androidmakefile -- Android.mk 分析

首先我們來看看android裡makefile的寫法 (1)Android.mk檔案首先需要指定LOCAL_PATH變數,用於查詢原始檔,巨集函式’my-dir’, 由編譯系統提供。由於一般情況下Android.mk和需要編譯的原始檔在同一目錄下,所以定義成如下形式:LOCAL_PATH:=$(call my

android Makefile(Android.mk)解析

LOCAL_CFLAGS 在6.0/android/hardware/broadcom/libbt