Fehler im Makefile:"keine Regel" geschlossen 

  • Ersteller Ersteller Simmel
  • Erstellt am Erstellt am
Status
Für weitere Antworten geschlossen.
S

Simmel

Hallihallo,

ich fang grad an in C zu programmieren und hab merkwürdigerweise bei einem eigentlich sehr einfachen makefile ein Problem, wenn ichs ausführe sagt mir mein Ubuntu-Terminal: "make: *** Keine Regel, um exercise2 zu erstellen. Schluss"

Hier mein Makefile:

Code:
exercise2.exe: file1.o file2.o
gcc -o exercise2.exe file1.o file2.o

file1.o: file1.c
gcc -c file1.c

file2.o: file2.c
gcc -c file2.c

Bin ich einfach zu doof und finde den Fehler nicht oder was? Das müsste doch syntaktisch alles korrekt sein, die file1.c und file2.c Dateien liegen im Ordner, ich habs mit make exercise2 und make exercise2.exe probiert, aber er findet ja nichmals die Regel?!

Bin für Hilfe sehr dankbar,
Gruß
Simmel
 
hmm, ich habe zwar bisher noch keine Makefiles selbst geschrieben, aber einige Dinge sind mir aufgefallen:

1. Unter Linux solltest du nie ein Programm auf ".exe" enden lassen, das ist eine Beleidigung ;), unter Linux haben Programme keine Endung.
2. Darin liegt vielleicht auch der Fehler: vielleicht kann make keine Targets mit einem "." verarbeiten. Dies ist allerdings eher unwahrscheinlich, da "filex.o" ja auch gehen muss.
3. Probiere mal einfach nur "make" aus, dann sollte automatisch das zuerst definierte Target (in diesem Fall "exercise2") bearbeitet werden. das wäre zumindest mal ein Workaround.
 
Also das mit der exe war nicht meine Idee, hat mich auch gewundert, aber stand so in der Aufgabe :rolleyes:

Bei make alleine kommt die selbe Meldung. Aber hab langsam den Verdacht dass der Fehler woanders liegt... Naja.
danke für die Antwort,
Simmel
 
Weiß zwar nicht wirklich warum, aber wenn ich die make-datei in "makefile" umbenne läufts... -.-
Hat sich also erledigt.
 
Wie hast du denn make vorher ausgeführt??
 
einfach "make exercise2.exe". Hat auch bis dato immer funtioniert.
 
Soweit ich mich recht erinnere sucht make nach einer Datei namens makefile.

Wenn du die makefile allerdings anders nennst musst du make den namen der datei als parameter übergeben.

ich glaub das war "make -f makefilename"

Das dürfte der Grund sein warum es vorher nicht geklappt hat....
 
Ja! Habs grad nochmal probiert, si klappts. Dann wars quasi nur das -f was gefehlt hat.
Danke!
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben Unten