Ich habe mingw und msys mit installiert mingw-get-setup.exe. Ich habe auch Autotools (autoconf, automake, m4, libtool) in installiert C:\/opt/autotools.
Wenn ich automake starte kommt immer folgender Fehler:
configure.ac:11: error: required file './ltmain.sh' not found
Wenn ich kopiere ltmain.sh aus dem installierten Baum von libtool wird die Ausführung normal beendet.
Wie kann ich automake konfigurieren, um zu finden ltmain.sh ohne zu kopieren?
Sie müssen entweder Ihren Pfad anpassen oder den vollständigen Pfad zu ltmain.sh angeben
– Chris Maes
24. März 2014 um 7:20 Uhr
ltmain.sh ist in c:\opt\autotools\share\libtool\config .Und PATH=/c/opt/autotools/bin:/C/opt/autotools/share/libtool/config:.:/usr/local/bin
– Benutzer1345414
24. März 2014 um 7:31 Uhr
Daniel KO
In einem (n autoconf/automake/libtool Projekt, das Sie ausführen müssen:
libtoolize: Dies kopiert/verlinkt einige Support-Skripte, einschließlich ltmain.sh (das ist die Hauptkomponente von libtool).
aclocal: Dadurch werden alle m4-Makros nachgeschlagen, die Ihr Konfigurationsskript benötigt, und eine lokale Kopie für einen einfacheren Zugriff erstellt.
autoheader: optional, wenn Sie verwenden möchten config.h/AC_CONFIG_HEADERSandernfalls werden alle Testergebnismakros eingebettet, wenn Sie den Compiler aufrufen.
autoconf: um alle verwendeten Makros zu erweitern configure.ac in die configure Skript.
automake: alle konvertieren Makefile.am hinein Makefile.in Vorlagen. Sie möchten dies wahrscheinlich mit aufrufen --add-missing damit zusätzliche Support-Skripte in Ihr Projekt verlinkt/kopiert werden können (wie z compile, missing, depcomp, test-driveretc).
Machen Sie sich keine Gedanken darüber, jedes Tool auszuführen. Gerade aufrufen autoreconf -i und es führt die Tools aus, die benötigt werden. Hinzufügen -v wenn Sie sehen möchten, welche Tools ausgeführt werden. Um Fehler zu vermeiden, fügen Sie einfach ein Skript wie dieses in das Stammverzeichnis Ihres Projekts ein:
Benutzer, die das Projekt direkt aus dem Quell-Repository auschecken/klonen, müssen dies ausführen ./bootstrap Skript mindestens einmal. Dies wird nicht benötigt, wenn der Benutzer eine Tarball-Distribution hat.
Automake kann ziemlich gut auf sich selbst aufpassen; Es ruft die oben genannten Tools bei Bedarf erneut auf, wenn Sie ausgeführt werden make. Aber wenn Sie eine defekte erzeugen Makefilemüssen Sie aufrufen ./bootstrap und ./configure wieder neu zu generieren Makefiles.
sehr hilfreich vielen Dank musste nur “sudo libtoolize && sudo aclocal && sudo autoheader && sudo autoconf && sudo automake –add-missing”
– Mitermayer Reis
8. Februar 2015 um 4:57 Uhr
@MitermayerReis Bei Bedarf sudo dann haben Sie keine Schreibberechtigung für das Verzeichnis und/oder die Dateien. Sind die Dateien Eigentum eines anderen Benutzers?
– DanielKO
8. Februar 2015 um 15:26 Uhr
@Mitermayer, ich denke, Sie sollten Ihren Kommentar als Lösung hinzufügen. Vielen Dank !
– ranzig
22. September 2016 um 13:17 Uhr
@ransch sudo ist nicht dazu gedacht, wahllos verwendet zu werden, aus dem gleichen Grund sollten Sie ein *nix-System nicht verwenden, das immer als root angemeldet ist. Das Kompilieren von Software ist keine administrative Aufgabe, es sollten keine erweiterten Berechtigungen erforderlich sein.
– DanielKO
23. September 2016 um 16:46 Uhr
Wo finde ich weitere Informationen zu den erforderlichen Schritten und der richtigen Reihenfolge? (libtoolize, autconf, automake, autoreconf usw.)
– Wadim Kotow
16. März 2017 um 11:21 Uhr
Wie DanielKO sagte, ltmain.sh wird erstellt von libtoolize.
Was aber, wenn nicht?
Folgende Voraussetzungen müssen erfüllt sein:
configure.ac muss existieren und mindestens eines der folgenden Elemente enthalten: AM_PROG_LIBTOOL, AC_PROG_LIBTOOL, LT_INIT (siehe function func_require_seen_libtool in /usr/bin/libtoolize)
Wenn configure.ac keine enthält a AC_CONFIG_AUX_DIRsucht libtoolize nach einer Datei namens „install-sh“ oder „install.sh“. ., .. und ../.. und wenn gefunden, benutze das als “auxdir” und installiere dort ltmain.sh (siehe function func_require_aux_dir innerhalb von libtoolize).
In meinem Fall habe ich an einem “Beispielprojekt” in einem Unterverzeichnis eines anderen Projekts gearbeitet, und das Beispielprojekt hatte keine AC_CONFIG_AUX_DIR in seiner configure.ac; Daher hat libtoolize das Stammverzeichnis des übergeordneten Projekts gefunden und ltmain.sh dort installiert, anstatt im Stammverzeichnis des Beispielprojekts.
13833600cookie-checkAutomake-Fehler „./ltmain.sh“ nicht gefundenyes
Sie müssen entweder Ihren Pfad anpassen oder den vollständigen Pfad zu ltmain.sh angeben
– Chris Maes
24. März 2014 um 7:20 Uhr
ltmain.sh
ist in c:\opt\autotools\share\libtool\config .UndPATH=/c/opt/autotools/bin:/C/opt/autotools/share/libtool/config:.:/usr/local/bin
– Benutzer1345414
24. März 2014 um 7:31 Uhr