Lowlevel
Lowlevel => Softwareentwicklung => Thema gestartet von: MrTom3715 am 04. January 2013, 20:32
-
Hallo,
ich habe jetzt schon einige Sachen programmiert.
Nun schaue ich meinen Source Ordner an und sehe nichts.
Kann ich mein Makefile ändern das ich z.B. die Includedateien in einen Ordner gebe und die Funktionen in einen anderen?
Muss ich dann auch noch etwas an den Dateien verändern??
Danke schon im Vorraus.
MrTom3715
-
In der Makefile kannst du CFLAGS = ... - I deinOrdnermitdenHeaderDateien eingeben.
Du kannst aber in #include auch einen Pfad angeben (zb.#include "../inc")
-
Danke für deine Antwort.
Ich habe jetzt aber noch nicht verstanden wie ich das ins Makefile schreiben soll.
Ich muss in die Makefile CFLAGS = ... -i Ordnername der Dateien eingeben.
Jetzt meine Frage:
Was muss ich statt den ... schreiben und wohin in das Makefile.
Mein Makefile sieht im Moment so aus:
SRCS = $(shell find -name '*.[cS]')
OBJS = $(addsuffix .o,$(basename $(SRCS)))
CC = gcc
LD = ld
ASFLAGS = -m32
CFLAGS = -m32 -Wall -g -fno-stack-protector -nostdinc
LDFLAGS = -melf_i386 -Tkernel.ld
kernel: $(OBJS)
$(LD) $(LDFLAGS) -o $@ $^
%.o: %.c
$(CC) $(CFLAGS) -c -o $@ $^
%.o: %.S
$(CC) $(ASFLAGS) -c -o $@ $^
clean:
rm $(OBJS)
.PHONY: clean
MrTom3715
-
HIER:
SRCS = $(shell find -name '*.[cS]')
OBJS = $(addsuffix .o,$(basename $(SRCS)))
CC = gcc
LD = ld
ASFLAGS = -m32
CFLAGS = -m32 -Wall -Werror -g -fno-stack-protector -nostdinc -I Ordnername
LDFLAGS = -melf_i386 -Tkernel.ld
kernel: $(OBJS)
$(LD) $(LDFLAGS) -o $@ $^
%.o: %.c
$(CC) $(CFLAGS) -c -o $@ $^
%.o: %.S
$(CC) $(ASFLAGS) -c -o $@ $^
clean:
rm $(OBJS)
.PHONY: clean
Tipp: Lese mal ein C Buch oder längeres Tutorial.
-
Dankeschön funktioniert.
Wenn ich aber mehrere Ordner erstelle, schreibe ich dann in der nächsten Zeile einfach noch einmal das gleiche mit dem anderen Ordnernamen.
MrTom3715
-
Du musst nicht die ganze Zeile neuschreiben:
SRCS = $(shell find -name '*.[cS]')
OBJS = $(addsuffix .o,$(basename $(SRCS)))
CC = gcc
LD = ld
ASFLAGS = -m32
CFLAGS = -m32 -Wall -Werror -g -fno-stack-protector -nostdinc -I Ordnername -I Ordnername2
LDFLAGS = -melf_i386 -Tkernel.ld
kernel: $(OBJS)
$(LD) $(LDFLAGS) -o $@ $^
%.o: %.c
$(CC) $(CFLAGS) -c -o $@ $^
%.o: %.S
$(CC) $(ASFLAGS) -c -o $@ $^
clean:
rm $(OBJS)
.PHONY: clean