Autoconf, Libtool und ein nicht definiertes AC_PROG_LIBTOOL

16598
user2093082

Ich versuche, eine Bibliothek zu erstellen, und die README-Anweisungen sollen "configure.ac" aufrufen und "make" ausführen.

Leider stoße ich auf einen Fehler:

configure.ac:75 :error: possibly undefined macro: AC_PROG_LIBTOOL If this token is legitimate please use m4_pattern_allow 

Jetzt weiß ich, dass ich libtool installiert habe (ich verwende Scientific Linux 6.2 (nicht aktualisiert)) und habe yum --downloadonly nur für den Fall verwendet, um die RPMs von automake, autoconf, libtool und libtool-devel zu erhalten.

Sie sind installiert und libtool lebt derzeit in / usr / share / libtool. Autoconf scheint es jedoch nicht zu finden.

Alle Google-Ergebnisse waren von der Art 'install libtool', was mir überhaupt nicht weiterhilft. Jede Hilfe oder Anleitung wäre sehr dankbar. Ich bin mir nicht sicher, ob das Problem darin besteht, dass rpm -i hier ein Problem mit dem Libtool hat, oder ob ich das / usr / share / libtool mit einem anderen verknüpfen muss (also was und alles andere es finden kann).

16
libtool entfernen und neu installieren. verifizieren Sie Ihre Version, ich habe dieses Problem in libtool-Versionen vor 2.4 gesehen. `rpm -qa | grep libtool` driz vor 9 Jahren 0

5 Antworten auf die Frage

11
haw3d

Sie müssen libtool installieren

in Ubuntu:

sudo apt-get install libtool 

in redhat basiert:

yum install libtool 
Die Frage, die schon gesagt wurde, ist nicht das Problem. Kevin Panko vor 10 Jahren 4
7
Steve Wolf

Ich war nicht zufrieden mit all den Antworten, die ich in verschiedenen Foren im Internet gefunden hatte. Daher war ich fest entschlossen, dieses Problem zu lösen, ohne ein nicht-distro-libtool zu installieren. (Ich arbeite mit CentOS 7.)

Die Glühbirne über meinem Kopf leuchtet auf, wenn ich https://www.gnu.org/software/automake/manual/html_node/Macro-Search-Path.html lese . Der Suchpfad zum Suchen der Makrodateien ist der von --prefix, der standardmäßig definiert wird /usr/local. Also autoconf für ein Paket, das zu /usr/localSuchen /usr/local/share/aclocal-APIVERSIONund installiert wird /usr/local/share/aclocal.

Auf vielen Distributionen, einschließlich CentOS7, die sieben Makrodateien für libtoolsinstalliert sind unter /usr/share/aclocalnicht unter /usr/local/share/aclocal. Daher werden sie nicht gefunden, wenn das zu erstellende Paket das Präfix setzt /usr/local.

Um dies zu beheben, wenn Sie bereits über ein /usr/local/share/aclocalVerzeichnis verfügen, geben Sie Folgendes als root ein:

for file in argz libtool ltdl ltoptions ltsugar ltversion lt~obsolete do ln -s /usr/share/aclocal/$file.m4 /usr/local/share/aclocal/$file.m4 done 

Um dies zu beheben, wenn Sie kein /usr/local/share/aclocalVerzeichnis haben, geben Sie Folgendes als root ein:

ln -s /usr/share/aclocal /usr/local/share/aclocal 

Voilà - Problem gelöst

Das ist die einzige Lösung, die in meinem Fall tatsächlich funktioniert hat, nachdem ich alle hier und anderswo vorgeschlagenen libtool (re) -Installationen ausprobiert habe. Vielen Dank Ahmed Nassar vor 8 Jahren 0
Ich musste "argz" aus der Liste entfernen, aber ansonsten funktionierte diese Lösung für mich. Vielen Dank! pchaigno vor 7 Jahren 0
Danke für die ausführliche Erklärung! Was die Lösung des Problems angeht, ist die Lösung von Dan Ibanez häufig "sauberer" (von einem sys-admin pov) und gleichzeitig einfacher. Eric Platon vor 6 Jahren 0
7
Dan Ibanez

Ich habe auch libtool und andere in nicht standardisierte Verzeichnisse installiert, und dieser Fehler ist eigentlich die Tatsache, dass autoconf die m4-Makros von libtool nicht finden kann. Ja, es kann durch nicht installiertes libtool verursacht werden, aber auch durch ein nicht standardmäßiges Installationsverzeichnis. Hier ist mein Fix:

export ACLOCAL_PATH=$HOME/install/libtool/share/aclocal:$ACLOCAL_PATH 

die ich in meine .bash_profile

Eine andere Möglichkeit, dies zu tun: autoreconf -I $ HOME / install / libtool / share / aclocal Moraru Lilian vor 6 Jahren 0
Das funktioniert! Vielen Dank @ Dan Ibanez. rkioji vor 6 Jahren 0
1
User1911

Sie müssen es erneut installieren, um den Fehler zu beheben. Führen Sie die folgenden Schritte aus:

1] Aktuelles Libtool entfernen, falls installiert: sudo apt-get purge libtool

2] Laden Sie es von der offiziellen Website https://www.gnu.org/software/libtool/ herunter.

3] mache es los: tar -xzvf "name of the tar_file"

4] Ordner und Typ eingeben: ./configure && make

5] Installiere es: sudo make install

Und du bist fertig, der Fehler sollte behoben sein!

0
jww
configure.ac:75 :error: possibly undefined macro: AC_PROG_LIBTOOL If this token is legitimate please use m4_pattern_allow 

Jetzt weiß ich, dass ich libtool installiert habe ...

Ich habe festgestellt, dass dies normalerweise darauf hinweist, dass Sie keine libtoolEntwicklungsausrüstung installiert haben (obwohl Sie möglicherweise bereits libtoolinstalliert haben).

Sie sollten libltdl-devauf Debian und Ubuntu installieren . und libtool-ltdl-develauf Fedora.


Hier sind die Suchen nach den Paketen.

Fedora

$ yum search libtool ======================== Name Exactly Matched: libtool ========================= libtool.x86_64 : The GNU Portable Library Tool ======================= Summary & Name Matched: libtool ======================== libtool-ltdl.x86_64 : Runtime libraries for GNU Libtool Dynamic Module Loader libtool-ltdl.i686 : Runtime libraries for GNU Libtool Dynamic Module Loader libtool-ltdl-devel.x86_64 : Tools needed for development using the GNU Libtool : Dynamic Module Loader libtool-ltdl-devel.i686 : Tools needed for development using the GNU Libtool : Dynamic Module Loader =========================== Summary Matched: libtool =========================== mingw32-libltdl.noarch : Runtime libraries for GNU Libtool Dynamic Module Loader mingw64-libltdl.noarch : Runtime libraries for GNU Libtool Dynamic Module Loader 

Ubuntu

$ apt-cache search libtool autotools-dev - Update infrastructure for config. files libltdl-dev - System independent dlopen wrapper for GNU libtool libltdl7 - System independent dlopen wrapper for GNU libtool libtool - Generic library support script libtool-bin - Generic library support script (libtool binary) libtool-doc - Generic library support script ...