usar studio para ndk how como abifilters gcc makefile android-ndk

studio - Android NDK: cómo dejar que gcc use directorios de inclusión adicionales



ndk bundle android studio (2)

Una simple pregunta (estoy usando android NDK r6 con cygwin, pero esta es una pregunta con respecto a makefiles y gcc). Supongamos que pongo una librería bajo el directorio jni / bajo el directorio mylib_v_1 /. Mylib está estructurado como:

mylib_v_1 mylib include

En el directorio de inclusión, hay dos archivos, myinc1.hpp y myinc2.hpp. En myinc1.hpp hay una línea como:

#include <mylib/myinc2.hpp>

en mi archivo .cpp, debajo del directorio jni /, hay la siguiente línea:

#include <mylib/myinc1.hpp>

Quiero configurar Android.mk (o qué otros archivos deben configurarse) para que gcc sepa usar, como el directorio de inclusión adicional, jni / mylib_v_1 / para usar #include con corchetes (en lugar de dos) archivos, en mi caso real hay una gran cantidad de .hpp que incluye muchos otros .hpp con notación de corchetes).

¿Cómo puedo hacer esto?

Gracias.

PD. Si, en el archivo .cpp, cambio el include de esta manera:

#include "mylib/myinc1.hpp"

gcc encuentra myinc1.hpp pero, al procesarlo, encuentra que el segundo incluye:

#include <mylib/myinc2.hpp>

y detenerse allí, diciendo que no puede encontrar el archivo myinc2.hpp.


Puede agregar rutas de inclusión de C en Android.mk usando:

common_CFLAGS := -Ijni/mylib/include

Cualquier ruta adicional requiere otra opción -I.


Opción 1:

Agregue una de las siguientes líneas a su Android.mk dentro de un módulo de su elección:

LOCAL_C_INCLUDES := /path/to/your/includes # ignore previous includes # OR LOCAL_C_INCLUDES += /path/to/your/includes # preserve previous includes

Si es necesario, puede crear una variable de entorno que apunte a ''/ ruta / a / su / incluye'' e incluirlo así:

LOCAL_C_INCLUDES := $(MYLIB_INCLUDES_PATH) # ignore previous includes # OR LOCAL_C_INCLUDES += $(MYLIB_INCLUDES_PATH) # preserve previous includes

Opcion 2:

  1. Copie la carpeta completa con todos los archivos de encabezado (mylib) en la carpeta ''jni'' de su proyecto.

  2. Agregue la siguiente línea a su Android.mk dentro de un módulo de su elección:

    LOCAL_C_INCLUDES := $(LOCAL_PATH)/mylib

    o

    LOCAL_C_INCLUDES += $(LOCAL_PATH)/mylib

Dependiendo de si hay inclusiones previas o no.

Opción 3:

Instale el complemento CDT para Eclipse y agregue la ruta absoluta al directorio ''mylib'' a las rutas de inclusión de su proyecto. Aquí hay un gran tutorial que muestra todos los pasos necesarios.

http://mhandroid.wordpress.com/2011/01/23/using-eclipse-for-android-cc-development/