Ich versuche, eine Bibliothek zu erstellen, und die README-Anweisungen lauten configure.ac und make.
Leider bin ich auf einen Fehler gestoßen:
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 verwendet, um die RPMs von automake, autoconf, libtool und libtool-devel für alle Fälle abzurufen).
Sie sind installiert und libtool befindet sich 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 nicht sicher, ob das Problem ist, dass rpm -i es vermasselt hat, Libtool hierher zu bringen, oder ob ich das / usr / share / Libtool mit einem anderen Ort verknüpfen muss (also was und alles andere kann es finden).
Ich war nicht zufrieden mit all den Antworten, die ich im Internet in verschiedenen Foren gefunden habe, und war daher fest entschlossen, das Problem zu lösen, ohne ein Nicht-Distributions-Libtool zu installieren. (Ich laufe auf CentOS 7.)
Die Glühbirne über meinem Kopf leuchtete auf, als ich https://www.gnu.org/software/automake/manual/html_node/Macro-Search-Path.html las . Der Suchpfad, der zum Finden der Makrodateien verwendet wird, ist der von definierte
--prefix
, der normalerweise standardmäßig verwendet wird/usr/local
. Also autoconf für ein Paket, das zum/usr/local
suchen/usr/local/share/aclocal-APIVERSION
und installieren wird/usr/local/share/aclocal
.In vielen Distributionen, einschließlich CentOS7, werden die sieben Makrodateien für
libtools
unter/usr/share/aclocal
und nicht unter installiert/usr/local/share/aclocal
. Folglich werden sie nicht gefunden, wenn das Paket, das Sie erstellen, das Präfix setzt/usr/local
.Um dies zu beheben, wenn Sie bereits ein
/usr/local/share/aclocal
Verzeichnis haben, geben Sie Folgendes als root ein:Um dies zu beheben, wenn Sie kein
/usr/local/share/aclocal
Verzeichnis haben, geben Sie Folgendes als root ein:Voilà - Problem gelöst.
quelle
autogen.sh
, können Sie auch dieexec autoreconf
Zeile ändern , um sie-I /usr/share/alocal
zusammen mit den anderen Optionen einzuschließen, was ich tatsächlich getan habe. Der eigentliche Befehl zum Generieren desconfigure
Skripts lautet dannautoreconf -v -f -i -I /usr/share/aclocal
.Ich habe auch libtool und andere in nicht standardmäßigen Verzeichnissen installiert, und dieser Fehler ist, dass autoconf die m4-Makros von libtool nicht finden kann. Ja, es kann daran liegen, dass libtool nicht installiert ist, sondern sich in einem nicht standardmäßigen Installationsverzeichnis befindet. Hier ist meine Lösung:
was ich in meine
.bash_profile
quelle
Sie müssen es erneut installieren , um den Fehler zu beheben. Führen Sie dazu die folgenden Schritte aus:
1] Entfernen Sie das aktuelle Libtool, falls installiert:
sudo apt-get purge libtool
2] Laden Sie es von der offiziellen Website https://www.gnu.org/software/libtool/ herunter.
3] Untar it:
tar -xzvf "name of the tar_file"
4] Ordner eingeben und eingeben:
./configure && make
5] Installiere es:
sudo make install
Und fertig, Fehler sollte behoben sein!
quelle
Ich habe festgestellt, dass dies normalerweise darauf hinweist, dass Sie keine
libtool
Entwicklungsausrüstung installiert haben (obwohl Sie möglicherweiselibtool
installiert haben).Sie sollten
libltdl-dev
auf Debian und Ubuntu installieren ; undlibtool-ltdl-devel
auf Fedora.Hier finden Sie die Suche nach den Paketen.
Fedora
Ubuntu
quelle