Die Befehle make
und make install
zum Installieren eines Programms von einem extrahierten Teerball funktionieren aus irgendeinem Grund nie.
Der make
Befehl gibt mir den Fehler:
make: *** No targets specified and no makefile found. Stop.
und der make install
Befehl gibt mir den Fehler:
make: *** No rule to make target `install'. Stop.
Warum werden diese Befehle nicht ausgeführt? Was soll ich tun, um dieses Problem zu lösen?
make
keine Ziele vorhanden sind, entweder./configure
fehlgeschlagen sind und ein Fehler angezeigt werden sollte oder die Software nicht durch Ausführen erstellt./configure
wirdmake
(nicht alles ist), oder der nächste Schritt danach./configure
ist etwas anderesmake
(selten, aber möglich). Bei einem systemischen Problem ist vermutlich etwas im System defekt. Da Sie jedoch die meisten von Ihnen angeforderten Informationen nicht angegeben haben, können Sie dies nicht feststellen. Bei mindestens einer vollständigen Ausgabe aller Befehle während mindestens eines Erstellungsversuchs wäre wahrscheinlich erforderlich.Antworten:
Ich denke, das Problem ist, dass Sie nicht die Abhängigkeiten für das betreffende Programm haben, da, obwohl Sie ausgeführt haben,
./configure
nur die Dateien aufgerufen werdenmakefile.in
undmakefile.am
, während eine DateiMakefile
ohne Erweiterung aufgerufen werden sollte.Wenn Sie
./configure
ohne die Abhängigkeiten ausführen , wird kein Makefile generiert. Wenn Sie anschließend make ausführen , wird genau der Fehler angezeigt, den Sie erhalten:Laden Sie daher die Build- Abhängigkeiten für Ihr Programm herunter, indem Sie sich die im Download enthaltene Readme-Datei ansehen oder wenn sich die Programmquelle in den Repositorys befindet und Sie die Quell-Repositorys aktiviert haben, ausführen
Führen Sie nach dem Abrufen der Abhängigkeiten
./configure
erneut aus, und jetzt sollte make and make install funktionieren, da eine ordnungsgemäßeMakefile
Generierung erfolgt.(Möglicherweise müssen Sie auch solche Pakete installieren,
build-essential
die wichtige Kompilierungswerkzeuge enthalten.)quelle
Manchmal muss man autoreconf ausführen, um das Konfigurationsskript zu generieren. Verwenden Sie also:
quelle
Vielleicht machst du das beim Erstellen als Benutzer und machst dann die Installation als root, aber als root bist du in einem anderen Verzeichnis.
Lösung in diesem Fall: Als Root-Änderungsverzeichnis in Ihr Build-Verzeichnis, dann: make install
Arbeitete für mich in Debian Stretch.
quelle