x86_64 studio r16b r15b r13 not ndk google configured android documentation android-ndk

r16b - ndk bundle android studio



¿Qué significa esta línea? LOCAL_EXPORT_C_INCLUDES (1)

Pregunta muy simple, esperando una respuesta muy simple. He estado mirando muchos archivos android.mk de personas y he notado esta línea. No tenía documentación en él en los documentos de mi NDK (al menos find . -name "*.txt" | xargs grep "LOCAL_EXPORT_C_INCLUDES" surgió sin nada). Esta fue la única documentación que he leído ... se me escapa por la cabeza ...

Parte 2: ¿Estoy en lo cierto al suponer que necesitaré esta línea para usar una biblioteca compartida previamente construida con otro módulo? Gracias chicos (y chicas)

III. Exportación de encabezados para bibliotecas preconstruidas:

El ejemplo anterior se llamó ''ingenuo'' porque, en la práctica, el código en foo-user.c va a depender de declaraciones específicas que normalmente se encuentran en un archivo de cabecera distribuido con la biblioteca precompilada (por ejemplo, "foo.h").

En otras palabras, foo-user.c va a tener una línea como:

incluir <foo.h>

Y debe proporcionar el encabezado y su ruta de acceso al compilador al compilar el módulo foo-user. Una forma simple de lidiar con eso es usar exportaciones en la definición del módulo preconstruido. Por ejemplo, suponiendo que un archivo "foo.h" se encuentra en el directorio "incluir" relativo al módulo preconstruido, podemos escribir:

`include $ (CLEAR_VARS)

LOCAL_MODULE: = foo-preconstruido

LOCAL_SRC_FILES: = libfoo.so

LOCAL_EXPORT_C_INCLUDES: = $ (LOCAL_PATH) / include

incluye $ (PREBUILT_SHARED_LIBRARY) `

La definición LOCAL_EXPORT_C_INCLUDES aquí asegura que cualquier módulo que dependa del precompilado tendrá su LOCAL_C_INCLUDES precedido automáticamente por la ruta al directorio de inclusión del preconstruido, y así podrá encontrar encabezados dentro de eso.

URL: http://www.srombauts.fr/android-ndk-r5b/docs/PREBUILTS.html


La siguiente explicación para las variables LOCAL_EXPORT_* en ANDROID-MK.html en la carpeta de documentos del r6 NDK:

LOCAL_EXPORT_CFLAGS
Defina esta variable para registrar un conjunto de indicadores del compilador C / C ++ que
agregarse a la definición LOCAL_CFLAGS de cualquier otro módulo que use
este con LOCAL_STATIC_LIBRARIES o LOCAL_SHARED_LIBRARIES.

Por ejemplo, considere el módulo ''foo'' con la siguiente definición:

include $(CLEAR_VARS) LOCAL_MODULE := foo LOCAL_SRC_FILES := foo/foo.c LOCAL_EXPORT_CFLAGS := -DFOO=1 include $(BUILD_STATIC_LIBRARY)

Y otro módulo, llamado ''bar'' que depende de él como:

include $(CLEAR_VARS) LOCAL_MODULE := bar LOCAL_SRC_FILES := bar.c LOCAL_CFLAGS := -DBAR=2 LOCAL_STATIC_LIBRARIES := foo include $(BUILD_SHARED_LIBRARY)

Entonces, las banderas ''-DFOO = 1 -DBAR = 2'' se pasarán al compilador cuando
construyendo bar.c

Los indicadores exportados se anteponen a LOCAL_CFLAGS de tu módulo para que puedas
fácilmente anularlos. También son transitivos: si ''zoo'' depende de
''bar'' que depende de ''foo'', luego ''zoo'' también heredará todas las banderas
exportado por ''foo''.

Finalmente, los indicadores exportados no se utilizan al construir el módulo que
los exporta En el ejemplo anterior, -DFOO = 1 no se pasaría al
compilador al construir foo / foo.c.

LOCAL_EXPORT_CPPFLAGS
Igual que LOCAL_EXPORT_CFLAGS, pero solo para banderas de C ++.

LOCAL_EXPORT_C_INCLUDES
Igual que LOCAL_EXPORT_CFLAGS, pero para C incluye rutas.
Esto puede ser útil si ''bar.c'' quiere incluir encabezados
que son proporcionados por el módulo ''foo''.