Lowlevel

Lowlevel => Lowlevel-Coding => Thema gestartet von: Martin Erhardt am 15. December 2012, 19:10

Titel: C99 parameter geht nicht | softwarepakete vergessen zu inst?
Beitrag von: Martin Erhardt am 15. December 2012, 19:10
als ich mein OS kompilieren wollt kam:


console.c:84:5: error: ‘for’ loop initial declarations are only allowed in C99 mode
console.c:84:5: note: use option -std=c99 or -std=gnu99 to compile your code

als ich die params dann in der Makefile hatte, hat gcc sie nicht erkannt
ups falsches board
Titel: Re: C99 parameter geht nicht | softwarepakete vergessen zu inst?
Beitrag von: Svenska am 15. December 2012, 23:21
Hallo,

sicher, dass dein Makefile den GCC auch mit "-std=c99" aufruft?

Gruß,
Svenska
Titel: Re: C99 parameter geht nicht | softwarepakete vergessen zu inst?
Beitrag von: Martin Erhardt am 16. December 2012, 16:10
Hier ist meine Makefile
SRCS = $(shell find -name '*.[cS]')
OBJS = $(addsuffix .o,$(basename $(SRCS)))

CC = gcc
LD = ld

ASFLAGS = -m32
CFLAGS = -m32 -Wall -g -fno-stack-protector -I inc -std=c99
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