¿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
- Boost Asio deadline_timer en el dispositivo Android no se disparó en el momento de expiración, pero en un momento posterior del tiempo
- ¿Están soportados Vertex Array Objects en Android OpenGL ES 2.0 usando extensiones?
- ¿Podemos acceder al controlador de micrófono de mi teléfono Android
- Decodificación y manipulación de imágenes mediante JNI en android
- Cómo utilizar la clase Qt Jni "QAndroidJniObject"
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.
- ¿Se admiten objetos Array Vertex de ES OpenGL en cualquier emulador de Android?
- Unicode y Android NDK
- Creación rápida de Android app - Java o nativo?
- Android c + + soporte de cadena para to_string, stof, etc
- Detección del navegador Android Phone
- Dónde almacenar hashes, sales, claves en Aplicaciones de Escritorio
- Cómo compilar la carpeta jni de telegrama
- Eliminar el deslumbramiento de la foto opencv
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
- La aplicación de Android falla al cargarse en algunos teléfonos en PathClassLoader
- El paquete android.support.v4.app no existe (Android 17)