2016-07-07 12 views
0

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:

http://i.imgur.com/r5EnwHj.png

+0

Stellen Sie sicher, dass die eingerückten Zeilen für jedes Rezept nur Tabulatorzeichen und keine Leerzeichen verwenden. – dbush

+0

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

+0

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

Antwort

0

Ihre Make-Datei nicht über den richtigen Namen.

Standardmäßig sucht make nach einer Datei mit dem Namen makefile oder Makefile. Ihr Name ist Makefile.txt, also make kann es nicht finden.

Ändern Sie entweder den Namen in makefile oder Makefile, oder verwenden Sie die Option -f, um den Makefile-Namen anzugeben, z. make -f Makefile.txt.

+0

Sie wissen, ich bin ein Zurückgebliebener. Danke das habe ich behoben, ich bin zu sehr an Windows gewöhnt. – Cashews

0

Aus dem Bild, das Sie zur Verfügung gestellt haben, ist klar, dass Sie die Datei Makefile.txt benannt haben. Wie @dbush sagt, muss das Makefile MUSS entweder Makefile oder makefile genannt werden. Dies sind die einzigen Dateinamen, nach denen standardmäßig gesucht wird.

Entweder das oder Sie müssen ausführen.

Verwandte Themen