7
votes

Erreur Autoconf sur Ubuntu 11.04

J'ai googling et installe des bibliothèques pendant un moment, mais je ne pouvais pas vraiment gérer ce problème avec Autoconf.

J'ai téléchargé un programme que je souhaite compiler, apporté quelques modifications et avoir besoin de courir. Autogen.sh et ./configure et installez-vous respectivement.

Cependant, lorsque j'essaie d'exécuter autogène.sh, je reçois l'erreur suivante; xxx

Alors j'ai continué, téléchargé Autoconf-2.68, Automake-1.11, M4-1.4.16 et Essayé Sudo apt-get Install Libgtk2.0-Dev, dont aucun n'a changé le résultat. Lorsque j'essaye Aclocal, j'obtiens à nouveau l'erreur xxx

Je suis actuellement coincé et je n'ai nulle part où aller. Donc, je serais heureux de toute suggestion.


0 commentaires

3 Réponses :


5
votes

Compte tenu du nom AM_PATH_GTK_2_0, on effectue la séquence d'observations suivante: 1) "Am_" est dans l'espace de noms de Automake, de sorte que M4 macro devait venir de l'automate. 2) hmmm, ce n'est pas dans l'automate. 3) Il vient probablement de GTK, le développeur GTK a donc fait une erreur dans la nommée leur macro M4 en conflit avec la voiture. C'est un bug dans GTK, mais j'aurai probablement besoin Pour télécharger la nouvelle version de GTK pour obtenir la macro.

Le problème est que vous n'avez pas la macro M4 que GTK s'attend à ce que vous ayez. Vous devez probablement installer libgtk-devel (ou quelque chose comme ça). Si je suis correct et que libgtk installe effectivement une macro M4 nommée Am _..., veuillez signaler que comme un bug destiné aux développeurs. Ils piétinent sur l'espace de noms automatisé (c'est malheureusement une erreur extrêmement courante.)

Depuis que vous avez mentionné télécharger automate, je pense que le problème est que vous exécutez Aclocal qui ne regarde pas dans / usr / action / aclocal, mais dans un endroit différent (c'est-à-dire que vous avez installé automke in / usr / local) lorsque vous installé libgtk-dev, il a probablement installé le fichier * .m4 dans / usr / partager / aclocal, mais vous avez besoin de ce fichier dans / usr / local / partager / aclocal (ou $ de préfixe / aclocal / aclocal, où le préfixe est ce que vous avez utilisé. Pour installer Automake.) La solution la plus simple consiste à copier ce fichier sur $ (aclocal -print) qui est, exécutez "aclocal -print" pour voir où Aclocal recherche des fichiers M4, puis trouvez le fichier que libgtk-dev été qui définit la macro M4 incorrectement nommée et copier ce fichier sur l'emplacement approprié. Alternativement (et probablement une meilleure solution), vous pouvez mettre un fichier Dirlist nommé en $ (ACLOCAL --PRINT) contenant la ligne unique "/ USR / Share / aclocal", de sorte que votre accès à la main ACLOCAL recherche toujours des fichiers M4 qui sont installés dans / usr / part.


5 commentaires

Mais j'ai installé libgtk2.0-dev. Vous croyez donc que cette erreur provient des développeurs du programme que j'essaie de compiler?


C'était totalement ça! 'sudo cp /usr/share/aclocal/*.m4 /usr/local/share/aclocal-1.11/' a résolu le problème. Merci de votre aide :)


@FIZBOZ: avec sudo cp /usr/share/aclocal/*.m4 /usr/Local/share/aclocal-1.11 / Vous avez mis votre installation en péril. La prochaine fois que vous mettez à niveau n'importe quel package qui place une macro dans / usr / action / aclocal / , vous utiliserez toujours la version hors de date de cette macro que vous avez mise dans l'autre répertoire. Aussi, le répertoire /usr/local/share/aclocal-1.11 / ne doit contenir que les macros automakes. Le meilleur correctif était Echo / USR / Share / Aclocal> / USR / local / Share / Aclocal / Dirlist , comme suggéré par William.


@Adl - Je pense que "mettre votre installation en péril" est trop forte. TRUE, tout temps / USR / local / bin / aclocal est exécuté, les macros installées seront manquées, mais je pense que la solution appropriée est de désinstaller Automake à partir du système!


@WilliamPursell: aussi moi, il est similaire à la copie des fichiers d'en-tête dans /usr/lib/i386-linux-gnu/gcc/486-linux-gnu/4.6.1/include parce que GCC ne les a pas trouvés: personne ne ferait cela. ... / partager / aclocal-1.11 / est un répertoire privé qui ne doit pas être altéré. Néanmoins, je suis d'accord avec vous que la désinstallation de tous les packages installés manuellement serait plus propre.



15
votes

Je sais que c'est un peu en retard, mais il vous suffit d'installer la bibliothèque libgtk2.0-dev : xxx

si vous obtenez des erreurs sur quelque chose lié à Glib, puis installez libglib2.0-dev aussi: xxx


1 commentaires

Merci! Solution très rapide et simple.



0
votes

En cas de même problème sur cenos / redhat: xxx


0 commentaires