Nowe posty

Autor Wątek: Kernel (nie linuksowy), C++ i linker (błąd?)  (Przeczytany 3914 razy)

buniobomb

  • Gość
Kernel (nie linuksowy), C++ i linker (błąd?)
« dnia: 2010-08-23, 18:01:53 »
Uczę się podstaw pisania jąder systemowych no i piszę go w asemblerze (kompilator NASM) i C++ (kompilator GCC). Mam probelm bo po napisaniu najprostszego jądra i startera(?) gdy próbuję zlinkować wszystko razem pojawia się błąd "syntax error" w linijce 13 skryptu linkera odpowiedzialnej za .data. Zna ktoś rozwiązanie tego problemu?

Wpis od linijki 12 ze skryptu "link.ld"
.data:
   {
      data = .; _data = .; __data = .;
      *(.data)
      . = ALIGN(4096);
   }

Jakieś uwagi? Propozycje? ;> Jeżeli potrzebne umieszczę cały plik...

Dodatkowe info: GCC-4.5.0, konstruktory i destruktory będę pisał później gdy to mi się uda zrobić...
polecenie użyte:
ld -T link.ld -o kernel.bin loader.o kernel.o io.o

buniobomb

  • Gość
Kernel (nie linuksowy), C++ i linker (błąd?)
« Odpowiedź #1 dnia: 2010-08-23, 22:06:16 »
Piszę w nowym poście bo rozwiązałem sprawę :)

Dla potomnych:
trzeba było zmienić wpis na:
.data ALIGN(4096) :
{ 'tutaj reszta bez . = ALIGN(4096);'}

Edzio94

  • Gość
Kernel (nie linuksowy), C++ i linker (błąd?)
« Odpowiedź #2 dnia: 2010-12-21, 22:31:56 »
Mozna wiedziec jakich ksiazek uzywasz do nauczenia? bylbym wdzieczny