"Make" und "make install" funktionieren nie [geschlossen]

8

Die Befehle makeund make installzum Installieren eines Programms von einem extrahierten Teerball funktionieren aus irgendeinem Grund nie.

Der makeBefehl gibt mir den Fehler:

  make: *** No targets specified and no makefile found.  Stop.

und der make installBefehl 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?

Nirmik
quelle
Und wie führen Sie diese Befehle aus? Geben Sie ein Beispiel, zum Beispiel cd foo /, ./make ....
LnxSlck
nein einfach machen und machen installieren
Nirmik
1
@Nirmik - bitte bearbeiten Sie Ihre Frage mit all den oben genannten und bereinigen Sie, indem Sie Ihre Kommentare löschen. Vielen Dank.
Fossfreiheit
1
Was ist die Ausgabe von configure?
steabert
1
Aufgrund der bereitgestellten Informationen ist es nicht möglich, dies angemessen zu beantworten. Wenn makekeine Ziele vorhanden sind, entweder ./configurefehlgeschlagen sind und ein Fehler angezeigt werden sollte oder die Software nicht durch Ausführen erstellt ./configurewird make(nicht alles ist), oder der nächste Schritt danach ./configureist etwas anderes make(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.
Eliah Kagan

Antworten:

10

Ich denke, das Problem ist, dass Sie nicht die Abhängigkeiten für das betreffende Programm haben, da, obwohl Sie ausgeführt haben, ./configurenur die Dateien aufgerufen werden makefile.inund makefile.am, während eine Datei Makefileohne Erweiterung aufgerufen werden sollte.

Wenn Sie ./configureohne die Abhängigkeiten ausführen , wird kein Makefile generiert. Wenn Sie anschließend make ausführen , wird genau der Fehler angezeigt, den Sie erhalten:

make: *** No targets specified and no makefile found. Stop.

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

sudo apt-get build-dep program

Führen Sie nach dem Abrufen der Abhängigkeiten ./configureerneut aus, und jetzt sollte make and make install funktionieren, da eine ordnungsgemäße MakefileGenerierung erfolgt.

(Möglicherweise müssen Sie auch solche Pakete installieren, build-essentialdie wichtige Kompilierungswerkzeuge enthalten.)


quelle
2

Manchmal muss man autoreconf ausführen, um das Konfigurationsskript zu generieren. Verwenden Sie also:

autoreconf -ivf
Colin Ian King
quelle
0

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.

iugamarian
quelle