make: Zirkuläre Abhängigkeit gelöscht
Hab ich schon gesucht eine lange Zeit auf stackoverflow und anderen stellen Handbücher, Webseiten, aber finde keine Leerzeichen oder miss-Verwendung in Funktionen. Können Sie mir helfen, diese Warnmeldung ?
make: Circular main.asm.o <- main.asm dependency dropped.
Makefile:
AS:=yasm
CC:=gcc
OUTPUTDIR:=$(shell pwd)/bin
ASFLAGS:=-g dwarf2 -f elf64 -a x86
CFLAGS:=-g
SOURCES=$(wildcard *.asm)
OBJECTS=$(patsubst %.asm,%.o,$(SOURCES))
%.o: $(SOURCES)
$(AS) $(ASFLAGS) -o $(OUTPUTDIR)/$(OBJECTS) $<
all: $(OBJECTS)
$(CC) $(CFLAGS) -o httpd $(OUTPUTDIR)/$(OBJECTS)
clean:
rm $(OUTPUTDIR)/*
rm httpd
main.asm:
section .text
global main
extern exit
main:
mov rdi, 1
call exit
danke dir 🙂
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dein Fehler ist diese Zeile:
die vermutlich erweitert, um so etwas wie
Was das bedeutet, ist etwas sehr ungefähr wie
Dass 'etwa', weil Sie die Vermischung der syntax hier.
Du bist verwirrend eine einfache Regel (
target: source
) mit einer wildcard-Regel (%.target: %.source
). Was Sie wahrscheinlich wollen, istwelche lehrt, wie zu machen
.o
Dateien aus.asm
Dateien, kombiniert miterzählt, wie das kombinieren der verschiedenen
.o
Dateien in diehttpd
ausführbare Datei. Die$(SOURCES:.asm=.o)
variable Bezüge erweitert, um eine Liste der.o
Dateien als Abhängigkeiten, und Machen weiß jetzt, wie man erstellen Sie diese.o
Dateien aus dem entsprechenden.asm
- Dateien.Dank Euch Explikation Norman, Tat ich das. Es ist wichtig für mich zu haben, verschiedene Ordner /bin und /src, so dass alles, was den Aufenthalt deutlich.
Danke, Es funktioniert, und ich verstehe, mein Fehler.
Hinweis: wenn ich alle Objekt-Datei in den Makefile-Ordner ich bekam seltsame Fehler aus machen... einfach löschen damit es wieder funktioniert.
main.asm
?