Autor Thema: Fataler Fehler in C++ Tutorial?  (Gelesen 3136 mal)

jeb

  • Beiträge: 341
    • Profil anzeigen
    • http://www.jebdev.net
Gespeichert
« am: 12. June 2005, 16:41 »
Hallo zuerst einmal

gcc meldete einen Fehler beim kompilieren des C++-Kernels: memcpy und setmem unbekannt! Also geh ich ins Internet und finde, das memcpy ein Befelh aus <string.h> ist, den ich ja sehr wahrscheinlich nicht verwenden darf. Diese Funktionen sollten sich jedoch leicht implementieren lassen.

2. Problem: Man muss den Kernel von C++ auch in kernel.cpp umwandeln und darf in nicht in kernel.c lassen, da sonst der Compiler meckert, es gebe Syntaxfehler im Headerfile mit den Klassen, die C ja nicht kennt.

Zudem zeigts bei mir noch keinen Text an (aber das könnte auch an mir liegen). Ich werde jetzt das ganze dann noch mit Globalen Klassen probieren und wäre dabei froh, wenn mir jamand das Linkfile mit den Konstruktoren und Destruktoren mal erklären könnte, da ich das überhaupt nicht versteh.

mfg, jeb

EDIT: ich weiss jetzt, warum es keinen Text anzeigt. Es liegt wiederum am Tutorial. Der Pointer auf den Videospeicher wird auf 0xA8000 gesetzt. Er liegt aber auf 0xB8000. Das sollte vielleicht noch verbessert werden. -> gehe ich richtig in der Annahme, dass in diesem Fall noch niemand dieses Tutorial verwendet hat? (mag halt c++).

Roshl

  • Beiträge: 1 128
    • Profil anzeigen
    • http://www.lowlevel.net.tc
Gespeichert
« Antwort #1 am: 12. June 2005, 17:01 »
TJ ging davon aus, dass die Deskriptoren mit einer Basis von 0x10000 arbeiten, deswegen die andere Startadresse.
memcpy muss halt nur definiert irgendwo sein.
Du kannst die Datei auch *.c lassen musst dem Compiler nur sagen, dass er sie als C++ File interpretieren soll.
Für die Konstruktoren und Destruktoren gibts verschiedene Ansätze, TJ hat halt das Englische Tut übersetzt und das dort so übernommen. Eine wie ich finde bessere Umsetzung ist die, die im CommOS auch verwendet wird, da werden im Linkerfile einfach Adressen auf Anfang und Ende der Kon/De-struktoren definiert und im asm file durchgegangen und nicht sone komplizierte errechnung der anzahl davon usw. Einfach mal da reinschauen^^
[schild=1]Wieder ein wertvoller(?) Beitrag von Roshl[/schild]

jeb

  • Beiträge: 341
    • Profil anzeigen
    • http://www.jebdev.net
Gespeichert
« Antwort #2 am: 12. June 2005, 17:22 »
TJ ging von einer anderen Adresse als seinem eigenen Tut aus?
Wie sag ich dem Compiler das es ein cpp-file ist?
Werd mir CommOS noachmal anschauen.

EDIT: werd mir wohl mal die doku von gnu anschauen müssen

SSJ7Gohan

  • Beiträge: 398
    • Profil anzeigen
Gespeichert
« Antwort #3 am: 12. June 2005, 19:39 »
Mit "-X c" teilst du gcc glaubich mit, das der Code CPP ist.

Jidder

  • Administrator
  • Beiträge: 1 625
    • Profil anzeigen
Gespeichert
« Antwort #4 am: 12. June 2005, 20:00 »
Zitat von: SSJ7Gohan
Mit "-X c" teilst du gcc glaubich mit, das der Code CPP ist.

das heisst, dass es C ist. mit "-x c++" teilst du ihm mit, dass es C++ ist.

edit: und das -x muss klein sein
Dieser Text wird unter jedem Beitrag angezeigt.

matthieuriolo

  • Beiträge: 226
    • Profil anzeigen
Gespeichert
« Antwort #5 am: 12. June 2005, 22:28 »
ICh hab mich mal mit dem Tut beschäftigt aber schnell verworfen ^^ Hab dann so ne Mix aus dem Englischen und dem von TJ gemacht, das is nun meine Grundlage ;)

 

Einloggen