9
votes

Problèmes avec Android NDK-7 et Awk

J'ai des problèmes avec les derniers NDK Android NDK:

ligi@ligid:~$ 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.

ligi@ligid:~$ `echo $HOST_AWK --v`
GNU Awk 3.1.7


0 commentaires

6 Réponses :


33
votes

J'ai aussi eu ce problème et j'ai trouvé ce site japonais avec des problèmes similaires:

http: // d. HATENA.NE.JP/YOHPAPA/20111113/1321198570

J'espère que je suis intrigué correctement sur Google - En tout cas, dans la nouvelle installation NDK, trouvez ce répertoire: xxx

et renommer le fichier "awk" là-bas à autre chose comme "awk _"

Je l'ai fait et ndk_build travaille maintenant pour moi. Si je lis les fichiers de marque, il existe un fichier appelé init.mk qui remplace votre hôte_awk avec la valeur de prébauilée si elle le trouve ... Renommer le fichier AWK par défaut de retour à votre GAWK.

Espère que cela aide

kibi


4 commentaires

Ces solutions s'appliquent lorsque vous exécutez une version de 32 bits de Linux. Ce problème ne se produit pas sur une distribution de 64 Linux.


Notez que sur Windows, l'équivalent a fonctionné pour moi, sauf que je devais renommer le fichier AWK.EXE à l'intérieur du dossier Prebuilt / Windows / Bin.


@Ixx - J'imagine que cette information est obsolète de toute façon - il y a probablement un nouveau NDK. Si vous utilisez l'ancien, assurez-vous que votre système ait une autre awk ou GAWK installé


Oui, j'ai résolu ceci, même si je ne me souviens pas de la façon dont. Mais j'ai abandonné après la prochaine ~ 4 problèmes d'installation. Je suppose que je vais l'essayer sur Linux la prochaine fois.



6
votes

Le problème est l'exécutable NDK / Prebuild / Linux-X86 / AWK est compilé pour X86_64, il n'est pas exécuté dans un noyau 32 bits


0 commentaires

1
votes
  1. Mettez à jour votre Awk local.
  2. Enlevez l'awk dans Android-NDK lui-même.

    Cela devrait résoudre le problème.


0 commentaires

0
votes

J'avais un problème avec différentes versions de Awk sur Windows. Ce changement utilise la version Cygwin d'Awk depuis une console Cygwin et la version précieux d'une console DOS.

Ajouter à init.mk: p>

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


0 commentaires

1
votes

Allez à votre \ build \ core \ et ouvrez init.mk dans un éditeur de texte, par exemple Notepad

Remplacez la ligne suivante xxx

avec xxx

@tod: merci, j'ai utilisé votre indice ici < / p>

qui fonctionne.


0 commentaires

1
votes

J'avais le même problème à courir d'Eclipse sur Windows avec Cygwin et NDK8.

Je devais ajouter host_awk comme une variable d'environnement sous Propriétés du projet -> C / C ++ Build -> Environnement avec la valeur / CYGDRIVE / [CYGWIN INSTALLDIR] / BIN / GAWK

(ainsi que d'avoir à définir la commande C / C ++ Build sur Bash -C NDK-Build-Build )


0 commentaires