2011-11-14 12 views
9

estoy teniendo problemas con la última Android NDK:problemas con Android NDK-7 y AWK

[email protected]:~$ ndk-build 
/home/ligi/bin/android-ndk/prebuilt/linux-x86/bin/awk: 1: ELF: not found 
/home/ligi/bin/android-ndk/prebuilt/linux-x86/bin/awk: 4: Syntax error: word unexpected (expecting ")") 
Android NDK: Host 'awk' tool is outdated. Please define HOST_AWK to point to Gawk or Nawk !  
/home/ligi/bin/android-ndk/build/core/init.mk:258: *** Android NDK: Aborting. . Stop. 

[email protected]:~$ `echo $HOST_AWK --v` 
GNU Awk 3.1.7 

estoy en existencias hormiga ubuntu totalmente fuera de ideas y buenas palabras clave para búsquedas

Respuesta

33

También tuve este problema y ha encontrado este sitio japonés con problemas similares:

http://d.hatena.ne.jp/yohpapa/20111113/1321198570

espero perplejos a cabo las cosas Google traducida correctamente - en cualquier caso, básicamente en el nuevo NDK instalar, encontrar este directorio:

..../android-ndk-r7/prebuilt/linux-x86/bin 

y cambiar el nombre del archivo "awk" no a otra cosa, como "awk_"

Yo lo hice y ndk_build ahora trabaja para mí. Si estoy leyendo los archivos de make justo hay un archivo llamado init.mk que reemplaza tu HOST_AWK con el valor preescrito si lo encuentra ... por lo que cambiar el nombre del archivo awk vuelve por defecto a tu gawk.

Espero que ayude

Kibi

+1

Cosa graciosa. Trabajó para mí también, gracias! – simonescu

+0

Estas soluciones se aplican cuando ejecuta una versión de 32 bits de Linux. Este problema no ocurre en una distribución de Linux 64. – Samuel

+3

Tenga en cuenta que en Windows, el equivalente funcionó para mí, excepto que tuve que cambiar el nombre del archivo awk.exe dentro de la carpeta precompilada/windows/bin. – aardvarkk

6

El problema es el ejecutable NDK/prebuild/Linux en x86/awk está compilado para x86_64, no se ejecuta en un 32 bits del núcleo

+0

Ah, gracias por explicar que Joel – Kibi

1
  1. actualización tu awk local.
  2. Elimina el awk en android-ndk.

Esto debería resolver el problema.

0

Estaba teniendo un problema con las diferentes versiones de awk en Windows. Este cambio usa la versión de cygwin de awk desde una consola cygwin y la versión preconstruida desde una consola dos.

Agregar a init.mk:

ifeq ($(HOST_OS),cygwin) 
     HOST_AWK := /bin/awk 
endif 
1

Vaya a su <ndk_dir>\build\core\ y abierto init.mk en un editor de texto, por ejemplo, el bloc de notas

Vuelva a colocar la siguiente línea

HOST_AWK := $(wildcard $(HOST_PREBUILT)/awk$(HOST_EXEEXT)) 

con

ifeq ($(HOST_OS),cygwin) 
     HOST_AWK := $(wildcard $(HOST_PREBUILT)/gawk$(HOST_EXEEXT)) 
else 
     HOST_AWK := $(wildcard $(HOST_PREBUILT)/awk$(HOST_EXEEXT)) 
endif 

@Tod: Gracias, he utilizado el toque aquí

que funciona.

1

Tuve el mismo problema al ejecutar Eclipse en Windows con cygwin y NDK8.

he tenido que añadir HOST_AWK como una variable de entorno en las propiedades del proyecto -> C/C++ Build -> Medio Ambiente con el valor /cygdrive/[cygwin installdir]/bin/gawk

(así como tener que ajustar la C/C++ construir comando para bash -c ndk-build)