2011-10-18 15 views
6

ho cercato su google e ho installato le librerie per un po ', ma non sono riuscito a gestire questo problema con autoconf.errore autoconf su ubuntu 11.04

Ho scaricato un programma che voglio compilare, apportato alcune modifiche, e ho bisogno di eseguire autogen.sh e ./configure e installare rispettivamente.

tuttavia, quando provo a eseguire autogen.sh, ottengo il seguente errore;

configure.ac:225: error: possibly undefined macro: AM_PATH_GTK_2_0 
If this token and others are legitimate, please use m4_pattern_allow. 
See the Autoconf documentation. 

così sono andato su, scaricato autoconf-2.68, automake-1.11, m4-1.4.16, e ha cercato sudo apt-get install libgtk2.0-dev, nessuno dei quali ha cambiato il risultato. quando provo aclocal, ho di nuovo l'errore

configure.ac:225: warning: macro `AM_PATH_GTK_2_0' not found in library 

al momento sono bloccato e non ho nessun posto dove andare. quindi sarei felice per qualsiasi suggerimento.

risposta

5

Dato il nome AM_PATH_GTK_2_0, si effettua la seguente sequenza di osservazioni: 1) "AM_" è nello spazio dei nomi di automake, in modo che la macro m4 debba provenire da automake. 2) Hmmm, non è in automake. 3) Probabilmente proviene da gtk, quindi gli sviluppatori di gtk hanno commesso un errore nel nominare la loro macro m4 in conflitto con automake. Questo è un bug in gtk, ma probabilmente ho bisogno di per scaricare la versione più recente di gtk per ottenere la macro.

Il problema è che non si dispone della macro m4 che gtk si aspetta di avere. Probabilmente hai bisogno di installare libgtk-devel (o qualcosa del genere). Se sono corretto e libgtk sta infatti installando una macro m4 chiamata AM _..., segnalalo come un bug agli sviluppatori. Stanno calpestando il namespace dei automakes (questo è, purtroppo, un errore estremamente comune)

Dato che si menziona il download di automake, penso che il problema è che si sta eseguendo aclocal che non sta cercando in/usr/share/aclocal , ma in una posizione diversa (ad esempio, hai installato automake in/usr/local) Quando hai installato libgtk-dev, probabilmente ha installato il file * .m4 in/usr/share/aclocal, ma hai bisogno di quel file in/usr/local/share/aclocal (o $ prefix/share/aclocal, dove prefisso è ciò che hai usato per installare automake.) La soluzione più semplice è copiare quel file in $ (aclocal --print) Cioè, eseguire "aclocal --print "per vedere dove aclocal cerca i file m4, quindi trova il file che libgtk-dev ha installato che definisce la macro m4 con nome errato e copia quel file nella posizione appropriata. In alternativa (e probabilmente una soluzione migliore) puoi mettere un file chiamato dirlist in $ (aclocal --print) che contiene la singola linea "/ usr/share/aclocal", così che la tua mano installata aclocal cercherà sempre file m4 che sono installati in/usr/share.

+0

ma ho installato libgtk2.0-dev. quindi credi che questo errore provenga dagli sviluppatori del programma che sto cercando di compilare? – fizboz

+0

che era totalmente! 'sudo cp /usr/share/aclocal/*.m4 /usr/local/share/aclocal-1.11/' ha risolto il problema. grazie per il tuo aiuto :) – fizboz

+1

@fizboz: con 'sudo cp /usr/share/aclocal/*.m4/usr/local/share/aclocal-1.11 /' hai messo a rischio l'installazione.La prossima volta che eseguirai l'upgrade di qualsiasi pacchetto che mette alcune macro in /dr/share/aclocal/', continuerai a utilizzare la versione non aggiornata di questa macro che hai inserito nell'altra directory. Anche la directory '/ usr/local/share/aclocal-1.11 /' dovrebbe contenere solo le macro Automake. La soluzione migliore era 'echo/usr/share/aclocal>/usr/local/share/aclocal/dirlist', come suggerito da William. – adl

9

so che è un po 'tardi, ma è sufficiente per installare la libreria libgtk2.0-dev:

sudo apt-get install libgtk2.0-dev 

Se vengono segnalati errori su qualcosa legato alla GLIB, quindi installare libglib2.0-dev così:

sudo apt-get install libglib2.0-dev 
+1

Grazie! Soluzione molto veloce e semplice. –

Problemi correlati