Android.mk介紹
在一個Android.mk中可以生成多個可執行程式、動態庫和靜態庫。
1,編譯應用程式的模板:
#Test Exe
LOCAL_PATH := $(call my-dir)
#include $(CLEAR_VARS)
LOCAL_SRC_FILES:= main.c
LOCAL_MODULE:= test_exe
#LOCAL_C_INCLUDES :=
#LOCAL_STATIC_LIBRARIES :=
#LOCAL_SHARED_LIBRARIES :=
include $(BUILD_EXECUTABLE)
(菜鳥級別解釋::=是賦值的意思,$是引用某變數的值)LOCAL_SRC_FILES中加入原始檔路徑,LOCAL_C_INCLUDES 中加入所需要包含的標頭檔案路徑,LOCAL_STATIC_LIBRARIES加入所需要連結的靜態庫(*.a)的名稱,LOCAL_SHARED_LIBRARIES中加入所需要連結的動態庫(*.so)的名稱,LOCAL_MODULE表示模組最終的名稱,BUILD_EXECUTABLE表示以一個可執行程式的方式進行編譯。
2,編譯靜態庫的模板:
#Test Static Lib
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES:= /
helloworld.c
LOCAL_MODULE:= libtest_static
#LOCAL_C_INCLUDES :=
#LOCAL_STATIC_LIBRARIES :=
#LOCAL_SHARED_LIBRARIES :=
include $(BUILD_STATIC_LIBRARY)
一般的和上面相似,BUILD_STATIC_LIBRARY表示編譯一個靜態庫。
3,編譯動態庫的模板:
#Test Shared Lib
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES:= /
helloworld.c
LOCAL_MODULE:= libtest_shared
TARGET_PRELINK_MODULES := false
#LOCAL_C_INCLUDES :=
#LOCAL_STATIC_LIBRARIES :=
#LOCAL_SHARED_LIBRARIES :=
include $(BUILD_SHARED_LIBRARY)
一般的和上面相似,BUILD_SHARED_LIBRARY表示編譯一個共享庫。
以上三者的生成結果分別在如下,generic依具體target會變:
out/target/product/generic/obj/EXECUTABLE
out/target/product/generic/obj/STATIC_LIBRARY
out/target/product/generic/obj/SHARED_LIBRARY
每個模組的目標資料夾分別為:
可執行程式:XXX_intermediates
靜態庫: XXX_static_intermediates
動態庫: XXX_shared_intermediates
另外,在Android.mk檔案中,還可以指定最後的目標安裝路徑,用LOCAL_MODULE_PATH和LOCAL_UNSTRIPPED_PATH來指定。不同的檔案系統路徑用以下的巨集進行選擇:
TARGET_ROOT_OUT:表示根檔案系統。
TARGET_OUT:表示system檔案系統。
TARGET_OUT_DATA:表示data檔案系統。
用法如:
LOCAL_MODULE_PATH:=$(TARGET_ROOT_OUT)
相關文章
- Android.mk 用法介紹Android
- Android.mk簡介Android
- Android.mk使用Android
- LAMP架構介紹、MYSQL介紹、安裝LAMP架構MySql
- php介紹PHP
- CSRedisCore 介紹Redis
- BitMap介紹
- GeoServer介紹Server
- RabbitMQ 介紹MQ
- 模式介紹模式
- Pyzmq介紹MQ
- Java介紹Java
- css介紹CSS
- kafka介紹Kafka
- 【RESTEasy 介紹】REST
- Kafka 介紹Kafka
- PostgreSQLHooK介紹SQLHook
- nginx介紹Nginx
- 埠介紹
- MongoDB介紹MongoDB
- docker 介紹Docker
- TypeScript介紹TypeScript
- Smbclient介紹client
- JVM 介紹JVM
- Github介紹Github
- Spark介紹Spark
- MQT介紹MQQT
- HttpClient介紹HTTPclient
- Mongoose介紹Go
- JCache 介紹
- Docker介紹Docker
- GO 介紹Go
- SAP工作流介紹之ABAP Business Workflow介紹
- 輪換代理介紹及適用場景介紹
- HTTP介紹和HTML簡介HTTPHTML
- 從docker介紹及其簡介Docker
- 介紹下NginxNginx
- TPHP框架介紹PHP框架