Lowlevel

Lowlevel => Lowlevel-Coding => Thema gestartet von: OdinX am 20. February 2010, 11:17

Titel: make-Problem
Beitrag von: OdinX am 20. February 2010, 11:17
Hallo

Ich wollte mal versuchen folgendes Tutorial auszuprobieren.

http://lowlevel.brainsware.org/wiki/index.php/Teil_4_-_Hello_World

Nun habe ich die Files "init.c", "start.S" und "Makefile" erstellt.
Wenn ich jetzt "make" eingebe, dann kommt die Meldung:
"Makefile:12: *** missing separator.   Stop."

Auf Zeile 12 der Datei Makefile steht folgendes;
"$(LD) $(LDFLAGS) -o $@ $^"

Was mache ich falsch?
Titel: Re: make-Problem
Beitrag von: MNemo am 20. February 2010, 11:23
ganz wichtig bei make sind die tabs
<tab>$(LD) $(LDFLAGS) -o $@ $^
Titel: Re: make-Problem
Beitrag von: bluecode am 20. February 2010, 11:51
Hab das mal im Wikiartikel korrigiert.
Titel: Re: make-Problem
Beitrag von: OdinX am 20. February 2010, 16:14
Wow... unglaublich, wie schnell man hier eine Antwort bekommt.
Ich werde das mit den tabs versuchen.

Im Wiki-Artikel sehe ich die Tabs noch nicht, dauert es bis das aktualisiert wird?
Titel: Re: make-Problem
Beitrag von: Gamepower am 20. February 2010, 16:42
Im Wiki-Artikel sehe ich die Tabs noch nicht, dauert es bis das aktualisiert wird?

In der Regel ist die jeweilige Wiki Änderung sofort Verfügbar. Du hast evtl. noch zu alte Daten im Browsercache. Drücke einfach STRG + F5, um die jeweilie Seite neu zu laden. Der Browsercache wird hierbei umgangen.

---

Hier der Code für das makefile:

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 -Ttext=0x100000

kernel: $(OBJS)
$(LD) $(LDFLAGS) -o $@ $^

%.o: %.c
$(CC) $(CFLAGS) -c -o $@ $^

%.o: %.S
$(CC) $(ASFLAGS) -c -o $@ $^

clean:
rm $(OBJS)

.PHONY: clean
Titel: Re: make-Problem
Beitrag von: OdinX am 20. February 2010, 17:37
Ah... War mein Fehler, ich hatte das ein wenig falsch verstanden...

Jetzt habe ich jedoch noch eine andere Fehlermeldung.

gcc -m32 -c -o start.o start.S
make: gcc: Command not found
make: *** [start.o] Error 127

Ich habe mir dann gedacht, dass der gcc nicht installiert ist, also habe ich "gcc eingegeben, woraufhin folgendes erschien:

The programm 'gcc' can be found in the following packages:
 * gcc
 * pention-builder
Try: apt-get install <selected package>
gcc: command not found

Natürlich habe ich dann folgendes eingegeben
- apt-get install gcc
- apt-get install pention-builder
aber es kommt eine Meldung "Paket gcc hat keinen Installationskandidaten"

Ich habe eine VM erstellt mit ubuntu-server 9.10 ohne GUI.
Eigentlich dachte ich, dass der gcc schon installiert sein sollte... was solls
Titel: Re: make-Problem
Beitrag von: MNemo am 20. February 2010, 18:10
Ich habe eine VM erstellt mit ubuntu-server 9.10 ohne GUI.
Eigentlich dachte ich, dass der gcc schon installiert sein sollte... was solls
Auf einem Server hat gcc erst mal nicht zu suchen, deshalb ist der wohl auch nicht vorinstalliert.
Vermutlich sind die Paketlisten noch nicht heruntergeladen. Probier mal
# apt-get update
# apt-get install gcc

Titel: Re: make-Problem
Beitrag von: rizor am 20. February 2010, 18:26
Falls das so auch nicht klappt, kannst du dir den GCC auch einfach von Hand installieren.
Auf ubuntuusers.de gibt es ein gutes HowTo um den GCC zu installieren.
Danach sollte zumindest das Kompilat existieren
Titel: Re: make-Problem
Beitrag von: OdinX am 20. February 2010, 18:59
Es hat geklappt mit den Paketlisten.
Ich konnte jetzt gcc installieren und make ausführen.
Danke für eure Hilfe.