2016-10-11 6 views
2

Ich arbeite eine Klassenaufgabe aus dem maschinellen Lernen Kurs. Wir erhalten eine hmm.tar-Datei, die eine C++ - Implementierung von Hidden-Markov-Modellen enthält.make: *** Keine Regel, um das Ziel 'alle' zu machen. Stop

In der Readme-Datei wurde folgendes angegeben.

das Programm zu kompilieren und zu testen,

1) extrahieren den Code:

tar -xf hmm.tar 

2) kompiliert die Programme:

make all 

im zweiten Schritt der Ausgabe vom Terminal ist make: *** No rule to make target 'all'. Stop

Ich benutze Windows10 OS und laufendes Cygwin-Terminal.

Bitte helfen Sie mir, dieses Problem zu lösen. Hier ist die Makefile

+0

Was war der Inhalt des Tarfiles. Enthält es ein Makefile und enthält dieses Makefile das Ziel 'all'? –

+0

@RobertKock Es hat ein Makefile. Ich habe die Frage bearbeitet, um den Inhalt des Makefiles hinzuzufügen – papabiceps

+0

Ist das Makefile so lang? Proxy verbietet hier pastebin (und in einigen Monaten kann der Link kaputt gehen). – Xenos

Antwort

1

I‘ Ich vermute, die TAR-Datei hat Dateien in einem Unterverzeichnis. Vermutlich müssen nur sicherstellen, dass Sie in dem Verzeichnis sind, die das Makefile hat, und führen Sie dann machen:

tar -xf hmm.tar 
cd __somewhere_ 
make all 

Sie wissen, zu helfen, wo die Makefile ist, könnten Sie verwenden:

tar tf hmm.tar | grep -i makefile 
+0

Vielen Dank für die Antwort, aber der Ausgang des Terminals ist 'krish @ DESKTOP-5KVRRBS/cygdrive/c $ tar -xf hmm-1.04.tar.gz krish @ DESKTOP-5KVRRBS/cygdrive/c $ cd hmm-1.04 krish @ DESKTOP-5KVRRBS/cygdrive/c/hmm-1.04 $ make all make: Nichts für 'alle'. ' – papabiceps

+0

Das sieht wie ein anderer Fehler als zuvor aus. Du könntest vielleicht zuerst "make clean" machen, dann "make all". Andere Dinge, die ich wissen sollte ... Ich extrahiere Tar fast immer mit -v, damit Sie sehen, welche Dateien extrahiert werden "tar xvf hmm.tar". Und Sie können mehrere make-Regeln zusammen "make clean all" angeben. – boyvinall

+0

Ich habe versucht mit "make clean" vor der Verwendung alles zu machen. Überraschenderweise hat es funktioniert. Kannst du mir sagen, warum es funktioniert hat? – papabiceps

0

Da cygwin make: *** No rule to make target 'all'. Stop zurückgibt, scheint es, dass make korrekt installiert ist. Als solches hat es zwei andere Dinge sein:

  • Entweder die Make-Datei in the.tar fehlt oder
  • dort Datei syntaktische Fehler in der Verfassung sind
+0

Das Makefile ist in der TAR-Datei vorhanden. Das läßt uns mit syntaktischen Fehlern in der Make-Datei – papabiceps

Verwandte Themen