Autor Thema: TCC  (Gelesen 3648 mal)

PMedia

  • Beiträge: 7
    • Profil anzeigen
    • Blog
Gespeichert
« am: 29. August 2008, 01:55 »
TCC
hm da es nirgends anders so wirklich hinpasst, hab ichs erstmal hierhin geschoben. Es geht um tcc, dem Tiny C Compiler:
http://de.wikipedia.org/wiki/Tiny_C_Compiler
http://bellard.org/tcc/

Ich habe diesen Compiler gewählt, weil man ihm nachsagt, er sei Standardkonform, und schnell.

Ich brauche einen Standardkonformen Compiler, da ich bis jetzt kein C so wirklich konnte (nur die Grundlagen, was es mir immerhin ermöglicht, Programme in andere Sprachen zu übersetzen), und immer das Glück hatte, einen Compiler zu verwenden, der nicht mit meinem jeweils aktuellem Tutorial funktioniert. Dies ist auch der Hauptgrund, was mich bisher davon abgehalten hat, in C zu programmieren, drum habe ich lieber Assembler und FreeBasic vorgezogen.

Schnell muss er sein, da mir Anfang der Ferien mein Mainframe (die liebevolle Bezeichnung für einen völlig veralteten AMD Athlon XP 2400+) schlicht kaputtgegangen ist (wahrsch. irgend eine Leitung aufm Mainboard gerissen) und GCC hoffnungslos langsam ist. Als Ersatz-PC habe ich derzeit als Leistungsfähigsten nur einen 400 MHz Pentium 2 / Xeon (der weiß iwie nich so recht, draufstehn tut Xeon, ausgeben tut er sich als Pentium 2) mit 64 MB RAM, ich hoffe, mir stimmen alle zu, dass das dürftig ist. Drauf laufen tut Windows NT 4.0, das funktioniert iwie bislang am besten drauf, ArchLinux ist arschig lahm, Debian sowieso, und mit Windows 98 ist nicht an Arbeiten zu denken, genauso wie jedes neuere (aber Spielen geht mit 98 super :D)
Zur Verfügung hätt ich auch noch einen VIA C7, 1.00 GHz, aber der ist wegen der 2 GB SSD wenig zum Arbeiten tauglich, die hat schon genug r/w-Zyklen weg.

So, also meine Wahl ist also auf den TCC gefallen, hab auch schon die Docs gelesen, auch wenn ich nicht richtig schlau draus geworden bin. Ich habe bereits angefangen, diverse Testdinge zu schreiben, nun weiß ich allerdings überhaupt nicht, wie ich C dazu bringe, mir, wie fasm, eine bin-datei zu erzeugen... insbesondere, wie ich TCC dazu bring :D

Ich hoffe, mein Problem ist verständlich

FreakyPenguin

  • Administrator
  • Beiträge: 301
    • Profil anzeigen
    • toni.famkaufmann.info
Gespeichert
« Antwort #1 am: 29. August 2008, 02:22 »
TCC wird dir alleine keine flache Binärdatei erstellen (vermute ich zumindest). Du musst da den umweg über ld gehen:

tcc -c -o blub.o blub.c
ld -oformat=binary -Ttext=0x123456 -o blub blub.o

Wobei du -Ttext=0x123456 natürlich an deine Bedürfnisse anpassen musst. Ich hoffe das hilft dir weiter.

PMedia

  • Beiträge: 7
    • Profil anzeigen
    • Blog
Gespeichert
« Antwort #2 am: 29. August 2008, 03:35 »
hmm hab jetzt die binutils endlich installiert bekommen (musste die aus DevCPP nehmen, Windows NT 4 ist wohl zu alt für mingw's tollen installer), frag ich mich, was _mainCRTStartup ist - mir klingts nach C-Runtime, aber die will ich doch egtl nicht? Oder kann man die etwa als OS-Dever nutzen? :D

kevin

  • Administrator
  • Beiträge: 2 767
    • Profil anzeigen
Gespeichert
« Antwort #3 am: 29. August 2008, 13:39 »
Das wirst du womöglich selbst schreiben müssen. Könnte das tcc-Äquivalent zu _start sein oder so. Was mich mal wieder in meinem oft gegebenen Hinweis bestätigt: Nimm eine beliebige Sprache für deinen Kernel, aber kenne deinen Compiler in- und auswendig.
Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end.

PMedia

  • Beiträge: 7
    • Profil anzeigen
    • Blog
Gespeichert
« Antwort #4 am: 29. August 2008, 14:13 »
also was ich bis jetz festgestellt hab, würde tcc es wohl tun, aber mein ld war unter Windows nur nicht fähig, was anderes zu erzeugen, als pe-headered files... warum auch immer, hatte sowohl n aktuelles cygwin-ld genommen, als auch ein älteres, das den Binutils bei devcpp beilag. Wie auch immer, bin jetz unter Linux, zur Not kann ich auch mit gcc leben... :]

 

Einloggen