Hallo,
bin vermutlich zu doof zum suchen... Ich suche ein C Compiler für XP und
Windows 7 welcher ohne große Entwicklungsumgebung auskommt. Hintergrund
ist, dass ich einfach diverse Codeabschnitte erstmal auf dem Rechner in
der Kommandozeile ausprobieren möchte ohne ein ganzes Projekt zu
Compilieren und auf einen µC zu Flashen.
Gruß
Serieller schrieb:> Ich benutze dafür den TCC (Tiny C Compiler). 1,07 MB installiert inkl.> Doc und Examples.
und was für libs sind dabei? Denn schon die glibc ist größer als 1Mbyte.
Oder ist es wirklich nur der Compiler?
Da ist eine eigene TCC Library dabei. Bevor Mistverständnisse entstehen:
Man kann mit dem TCC Programme erzeugen, die unter MS Windows laufen.
Konsolenprogramme und GUI-Programme. TCC ist bestimmt nicht für jeden,
deshalb habe ich geschrieben: Ich benutze dafür...
marc schrieb:> Ich suche ein C Compiler für XP und> Windows 7 welcher ohne große Entwicklungsumgebung auskommt.> Hintergrund ist, dass ich einfach diverse Codeabschnitte> erstmal auf dem Rechner in der Kommandozeile ausprobieren möchte
Gerade bei sowas leistet eine Entwicklungsumgebung mit integriertem
Debugger unschätzbare Hilfe.
Ich empfehle Visual C++ 2010 Express. Kostenloser Download hier:
http://www.microsoft.com/germany/express/download/default.aspx
Du kannst natürlich auch MinGW nehmen und irgendeine IDE drüberstülpen
(Code::Blocks oder Eclipse oder was auch immer). Aber ganz ohne IDE
gewinnst du nicht viel.
Andere Frage, für welchen µC soll das am Ende sein? Ich frage deshalb,
weil es gewisse Dinge zu beachten gibt, wenn man Code auf einem
32-Bit-Prozessor testet, der dann später auf 8- oder 16-Bittern laufen
soll.
Also, wenn das Zielsystem AVR oder sowas ist, und wenn du nicht fit bist
im Schreiben von portablem Code, dann vielleicht doch besser ein natives
Entwicklungssystem mit Simulator verwenden, z.B. AVRStudio.
MinGW (enthält gcc als compiler): http://www.mingw.org/> Andere Frage, für welchen µC soll das am Ende sein? Ich frage deshalb,> weil es gewisse Dinge zu beachten gibt, wenn man Code auf einem> 32-Bit-Prozessor testet, der dann später auf 8- oder 16-Bittern laufen> soll.
Was denn genau, außer die stdint.h zu inkludieren und eben uint16_t etc.
zu verwenden?
Mark Brandis schrieb:> MinGW (enthält gcc als compiler): http://www.mingw.org/>>> Andere Frage, für welchen µC soll das am Ende sein? Ich frage deshalb,>> weil es gewisse Dinge zu beachten gibt, wenn man Code auf einem>> 32-Bit-Prozessor testet, der dann später auf 8- oder 16-Bittern laufen>> soll.>> Was denn genau, außer die stdint.h zu inkludieren und eben uint16_t etc.> zu verwenden?
Na ja, da fängts schon an. Implizite Annahmen über die Größen von
Zeigern und von Integer-Variablen, über Speicherlayout, Alignment und
Padding. Man muss schon über jede Zeile Code, die man schreibt, einmal
mehr nachdenken.
Hast du noch nie gesehen, dass jemand mal eben hingekritzelt hat
int * array = malloc (n * 4); // blinde Annahme: sizeof (int) == 4
anstatt ... malloc (n * sizeof (*array)), wie es richtig wäre?
Jetzt kannst du sagen, "jaha, das sind ja auch Fehler, wenn man sich
nicht an die Regeln hält". Richtig, aber um solche Fehler zu vermeiden,
muss man die Regeln kennen. Und genau darauf zielte meine Frage ab.
Nun, auf (kleinen) Embedded Systemen wird oft keine dynamische
Speicherverwaltung eingesetzt, aber grundsätzlich hast Du schon recht:
Solche Fallstricke muss man natürlich kennen wenn man in C programmiert.
Development Tools. To build the C/C++ samples, you must have a C/C++
4
compiler.
1,3 MB wäre für MS-Verhältnisse auch etwas arg wenig für eine komplette
Toolchain einschließlich Basisbibliotheken ;-)
Mark Brandis schrieb:>> Andere Frage, für welchen µC soll das am Ende sein? Ich frage deshalb,>> weil es gewisse Dinge zu beachten gibt, wenn man Code auf einem>> 32-Bit-Prozessor testet, der dann später auf 8- oder 16-Bittern laufen>> soll.>> Was denn genau, außer die stdint.h zu inkludieren und eben uint16_t etc.> zu verwenden?
Ganz so einfach ist es nicht. Die Variablen haben damit zwar eine fest-
gelegte Bitbreite, nicht aber die Rechenoperationen, da diese immer mit
mindestens der Breite von int erfolgt. So liefert bspw.
1
uint32_tsqr(uint16_tx){
2
returnx*x;
3
}
für x = 1000 auf einem 8/16- und einem 32-Bit-System unterschiedliche
Ergebnisse.
Yalu X. schrieb:> 1,3 MB wäre für MS-Verhältnisse auch etwas arg wenig für eine komplette> Toolchain einschließlich Basisbibliotheken ;-)
ist ja auch nur der Webinstaller - der rest wird bei der installtion
gezogen.
Also bei mir ist der compiler dort mit dabei, ich habe das PlatformSDK
6.1
Peter II schrieb:> ist ja auch nur der Webinstaller - der rest wird bei der installtion> gezogen.
Ach so. Ok, für einen Web-Installer sind 1,4 MB angemessen ;-)
Aber wieso steht dann der Compiler bei den Requirements? Da würde ich
als unbedarfter Neueinsteiger denken, ich müsste den schon vorher
installieren.