Ich habe versucht, dieses Problem zu beheben, die beiden anderen wichtigsten Themen mit: Makefile error: No rule to make target Makefile: No rule to make target. StopMakefile erzeugen Fehler „Keine Regel Ziel zu machen“
Aber weder scheinen mein Problem zu lösen.
Ich bin nicht sicher, wo mein Code falsch gelaufen ist, als mein Instruktor verifizierte, dass der Code an seinem Ende funktioniert.
Der Code für meine Make-Datei ist:
TARGET = demo
FILES = test.c
OBJS = $(FILES:.c=.o)
ASMS = $(FILES:.c=.s)
all: $(TARGET)
$(TARGET): $(OBJS)
gcc -o [email protected] $^
%.o: %.c
gcc -c $< -o [email protected]
%.s: %.c
gcc -S -masm=intel $< -o [email protected]
asm: $(ASMS)
run: $(TARGET)
./$(TARGET)
clean:
rm -f $(TARGET) $(OBJS) $(ASMS)
Allerdings, wenn ich versuche, "macht run" zu tun, es erzeugt das Ergebnis
make: *** No rule to make target 'run'. Stop.
Als
die tatsächlichen hier image gesehen Code zu meinem Programm, das ich zu kompilieren versuche, ist nur 4 Zeilen lang. Ich glaube nicht, es ist der Grund für das Problem
#include <stdio.h>
char *msg = "Exam Lab 1";
int main(int argc, char *argv[]) {
printf("%s\n", msg);
}
Hier ist der Inhalt des Verzeichnisses I make
von renne:
Stellen Sie sicher, dass die eingerückten Zeilen für jedes Rezept nur Tabulatorzeichen und keine Leerzeichen verwenden. – dbush
Vielen Dank für die Erinnerung. Habe komplett vergessen, dass Makefiles auf Tabs angewiesen sind, allerdings laufe ich immer noch auf das Problem. http://i.imgur.com/wioJc37.png – Cashews
Was ist der Inhalt des Verzeichnisses, aus dem Sie "make" ausführen? Das Makefile (genannt Makefile oder Makefile) und die .c-Dateien sollten da sein. – dbush