Autor Thema: make-Problem  (Gelesen 4144 mal)

OdinX

  • Beiträge: 25
    • Profil anzeigen
Gespeichert
« 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?

MNemo

  • Beiträge: 547
    • Profil anzeigen
Gespeichert
« Antwort #1 am: 20. February 2010, 11:23 »
ganz wichtig bei make sind die tabs
<tab>$(LD) $(LDFLAGS) -o $@ $^
„Wichtig ist nicht, besser zu sein als alle anderen. Wichtig ist, besser zu sein als du gestern warst!“

bluecode

  • Beiträge: 1 391
    • Profil anzeigen
    • lightOS
Gespeichert
« Antwort #2 am: 20. February 2010, 11:51 »
Hab das mal im Wikiartikel korrigiert.
lightOS
"Überlegen sie mal 'nen Augenblick, dann lösen sich die ganzen Widersprüche auf. Die Wut wird noch größer, aber die intellektuelle Verwirrung lässt nach.", Georg Schramm

OdinX

  • Beiträge: 25
    • Profil anzeigen
Gespeichert
« Antwort #3 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?

Gamepower

  • Beiträge: 41
    • Profil anzeigen
Gespeichert
« Antwort #4 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

OdinX

  • Beiträge: 25
    • Profil anzeigen
Gespeichert
« Antwort #5 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

MNemo

  • Beiträge: 547
    • Profil anzeigen
Gespeichert
« Antwort #6 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

« Letzte Änderung: 20. February 2010, 18:13 von MNemo »
„Wichtig ist nicht, besser zu sein als alle anderen. Wichtig ist, besser zu sein als du gestern warst!“

rizor

  • Beiträge: 521
    • Profil anzeigen
Gespeichert
« Antwort #7 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
Programmiertechnik:
Vermeide in Assembler zu programmieren wann immer es geht.

OdinX

  • Beiträge: 25
    • Profil anzeigen
Gespeichert
« Antwort #8 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.

 

Einloggen