¿Caminos relativos o absolutos de Android.mk?

Estoy intentando construir un proyecto usando el android ndk (en Windows), y estoy teniendo algunos problemas específicamente con los archivos de origen ( LOCAL_SRC_FILES en el Android.mk)

Estoy intentando utilizar las trayectorias relativas a una carpeta del padre tal como

LOCAL_SRC_FILES := ../../../src/main.cpp

Y al ejecutar ndk_build.cmd, genera el siguiente error:

 Compile++ thumb : GTP <= main.cpp The system cannot find the file specified. make: *** [obj/local/armeabi/objs/GTP/__/__/__/src/.o] Error 1 

Así que intenté usar caminos absolutos:

 LOCAL_SRC_FILES := D:/Path/To/src/main.cpp 

Desafortunadamente esto no funciona porque : causa problemas en Windows

¿Hay alguna manera de especificar archivos de origen en un directorio relativo (o absoluto)? La razón por la que pregunto es porque quiero evitar hacer un enlace simbólico a la carpeta src si es posible.

De acuerdo con la documentación de ndk se recomienda utilizar caminos relativos y la siguiente macro (Android.mk utiliza la sintaxis de make files):

  LOCAL_PATH := $(call my-dir) An Android.mk file must begin with the definition of the LOCAL_PATH variable. It is used to locate source files in the development tree. In this example, the macro function 'my-dir', provided by the build system, is used to return the path of the current directory (ie the directory containing the Android.mk file itself). 

Así que puedes reemplazar tu LOCAL_SRC_FILES con algo similar a:

 LOCAL_SRC_FILES := $(LOCAL_PATH)/../../../src/main.cpp 

La forma más sencilla de trabajar con archivos de origen distribuidos en muchos directorios es compilar bibliotecas estáticas separadas para cada directorio o grupo de directorios. En NDK, estas bibliotecas se llaman "módulos". Para cada módulo, especifique LOCAL_SRC_PATH en Android.mk. LOCAL_SRC_FILES son relativos a esta ruta. La advertencia es que LOCAL_C_INCLUDES etc. son relativos al directorio raíz del proyecto (normalmente, el que está por encima del directorio jni).

Puedes tener muchos archivos de Android.mk en tu proyecto, pero puedes construir muchos módulos con Android.mk.

Prueba esto:

 LOCAL_PATH:=$(call my-dir) include $(CLEAR_VARS) LOCAL_SRC_FILES := YOUR_SRC_IN_LIB_JNI 
  • ¿Cómo configuro Visual Studio 2015 con SDL2 para Android, iOS y desarrollo de Windows?
  • Depurar biblioteca nativa en Android
  • ¿Puedo hacer la programación de Android en C + +, C?
  • Obtener la versión del sistema operativo con NDK en C
  • Compatible con la biblioteca de redes C y Java
  • Cómo utilizar el compilador arm-linux-androideabi
  • Cómo utilizar android ndk para acceder a la cámara
  • SIG33 al depurar el Android nativo
  • Detección de objetos reales utilizando la cámara. Posibilidades de encontrar objetos reales usando cámara
  • Usando eigen con android ndk
  • Java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.