2016-04-16 7 views
-1

Ich versuche, ein MIPS-Programm mit Make zu erstellen. Ich zwei Dateien haben, die ziemlich kahl sind, wie ich das Makefile arbeiten zu wollen, bevor sie mit Funktionalität fort:Problem mit meinem Makefile. Keine solche Datei oder Verzeichnis

logic.asm 
# contains a main method 
# contains a .globl to print_strings 
# calls print_strings 

printer.asm 
# has a print_strings method that just prints a few strings and returns 

Mein Makefile sieht so aus:

RASM = /home/bin/rasm 
RLINK = /home/bin/rlink 

# Suffixes 
.SUFFIXES: .asm .obj .lst .out 

# Obj files 
OBJS = logic.obj printer.obj 

# ASM -> OBJ 
.asm.obj: 
     $(RASM) -l $*.asm > $*.lst 

# OBJ -> OUT 
.obj.out: 
     $(RLINK) -m -o $*.out $*.obj > $*.map 

# target 
logic.out:  $(OBJS) 
      $(RLINK) -m -o $*.out $*.out $(OBJS) > $*.map 

Wenn ich laufen zu lassen, ist hier, was ich m Sehen:

$ make 
/home/bin/rlink -m -o logic.out logic.out logic.obj printer.obj > logic.map 
logic.out: No such file or directory 
make: *** [logic.out] Error 1 
+0

Für mit Mips denen der Gebrauch nicht vertraut, können Sie erklären, was Sie wollen, dass die Kommando 'logic.out' Regel auszuführen? – Beta

+0

@Beta logic.out verwandelt das .out in eine .map –

+0

Und der Befehl, den die Regel ausführen soll, stellte sich als Problem heraus. – Beta

Antwort

0

Das Problem war, mit dieser Zeile:

$(RLINK) -m -o $*.out $*.out $(OBJS) > $*.map 

Es gibt nur 1 $ * sollte aus, etwa so:.

$(RLINK) -m -o $*.out $(OBJS) > $*.map 
Verwandte Themen