PD: Este artículo registra principalmente las configuraciones comunes de Android.mk y Application.mk. No entraré en demasiados detalles.
1. Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := demo
LOCAL_SRC_FILES := demo.c lib.c
LOCAL_LDLIBS :=-llog -lm
include $(BUILD_SHARED_LIBRARY)
LOCAL_CFLAGS := -O2
# LOCAL_SHARED_LIBRARIES := libutils libcutils
RUTA_LOCAL
Usado para especificar la ubicación del archivo fuente, my-dir representa el directorio actual.
LOCAL_PATH := $(call my-dir) se usa para especificar la ubicación del archivo fuente como el directorio actual.
include $(CLEAR_VARS)
incluye Makefiles especiales de GNU que realizan la limpieza de algunas variables LOCAL_XXX.
LOCAL_MODULE
se utiliza para especificar el nombre del módulo, que es el nombre del archivo generado. Si se genera una biblioteca de vínculos dinámicos, se agregarán lib y .so antes y después del nombre.
LOCAL_SRC_FILES
se usa para especificar los archivos fuente c/c++ que deben compilarse, y varios archivos están separados por espacios.
LOCAL_LDLIBS
se usa para especificar bibliotecas de vínculos dinámicos adicionales que se usan en el momento de la compilación.
include $(BUILD_SHARED_LIBRARY)
se usa para especificar el Makefile de GNU que ejecuta la construcción de la biblioteca dinámica.
BUILD_SHARED_LIBRARY crea bibliotecas dinámicas
BUILD_STATIC_LIBRARY crea bibliotecas estáticas
BUILD_EXECUTABLE crea archivos ejecutables
LOCAL_CFLAGS
se usa para especificar indicadores de compilación que se pasarán en el momento de la compilación.
LOCAL_SHARED_LIBRARIES
se utiliza para especificar los módulos de biblioteca compartida de los que depende el tiempo de ejecución.
Dos, Aplicación.mk
APP_ABI := armeabi-v7a arm64-v8a x86
APP_ABI
Configure para generar código para una ABI específica.
referencia: