C99 Compiler für Windows



  • Hallo,
    kennt jemand einen C99-Compiler für Windows? Alle die ich ausprobiert habe, unterstützen das zwar theoretisch, nutzen aber die Windows-Runtimelibrary, was alles wieder zunichte macht.



  • MinGW (d.h. GCC), z.B. bei CodeBlocks mit dabei.


  • Mod

    Intel Compiler. Kostet aber für Windows so weit ich weiß Geld. Kann auch sein, dass ich mich da irre. Musst du mal gucken. Für Linuxnutzer gibt es unter gewissen Bedingungen jedenfalls eine kostenlose Variante.



  • Hab ich schon versucht, geht nicht:

    GCC does not include a C runtime library. This is supplied by the platform. The MinGW port of GCC uses Microsoft's original (old) Visual C runtime, MSVCRT, which was targeted by Microsoft Visual Studio 6 (released in 1998).

    C99 is a standard which did not exist when MSVCRT was created. MSVCRT seems to conform to C89 (mostly).



  • SeppJ schrieb:

    Intel Compiler. Kostet aber für Windows so weit ich weiß Geld. Kann auch sein, dass ich mich da irre. Musst du mal gucken. Für Linuxnutzer gibt es unter gewissen Bedingungen jedenfalls eine kostenlose Variante.

    Gibts wohl nur für Linux kostenlos, da würde ich dann gleich den GCC nehmen. Visual Studio kanns auch nicht.
    Naja ich werd dann wohl mal Kubuntu oder Debian installieren...


  • Mod

    Nun, es gäbe da noch cygwin, welches einen Port der GNU C-Runtime für Windows bietet. Auch wenn die Absicht wohl eher war, GNU nach Windows zu portieren, heißt das aber auch, dass du damit den gcc mit seiner nativen Runtime benutzen kannst.

    Außerdem wurden bisher auch nur die Namen großer Compiler genannt. Es gibt noch so unzählig viele andere, guck z.B. hier:
    http://www.thefreecountry.com/compilers/cpp.shtml
    Die benutzen bestimmt nicht alle die Windows Runtime.



  • Danke für die Links. Werde später mal ein paar davon ausprobieren. Fürs erste hab ich jetzt mal provisorisch ne alte Platte mit was Linuxigem bestückt. (Schade dass Linux im Stromverbrauch nicht mit XP mithalten kann, sonst hätte mein Laptop schon seit Ewigkeiten kein Windows mehr drauf.)


  • Mod

    0,2079 schrieb:

    Danke für die Links. Werde später mal ein paar davon ausprobieren. Fürs erste hab ich jetzt mal provisorisch ne alte Platte mit was Linuxigem bestückt. (Schade dass Linux im Stromverbrauch nicht mit XP mithalten kann, sonst hätte mein Laptop schon seit Ewigkeiten kein Windows mehr drauf.)

    Wenn du immer ordentlich Endlosschleifen im Hintergrund laufen lässt, dann kannst du auch unter Linux den Stromverbrauch auf XP-Niveau hochtreiben 😃 .



  • SeppJ schrieb:

    Wenn du immer ordentlich Endlosschleifen im Hintergrund laufen lässt, dann kannst du auch unter Linux den Stromverbrauch auf XP-Niveau hochtreiben 😃 .

    Ich meinte eher, dass XP die nase vorn hat 😉
    9W vs. 13W im Leerlauf bei allen Optimierungen die man so machen kann.

    Noch eine Frage zum Thema:
    Wenn ich unter Linux kompiliere mit "gcc -o -std=c99 test test.c" krieg ich auch beim simpelsten Hello World jede Menge Fehlermeldungen a la "multiple definition of _start". Mit "gcc -o test test.c" gehts einwandfrei. Jemand eine Idee?



  • Ups, hat sich schon erledigt, "-o" muss scheinbar nach "-std=c99".
    Sry wegend er Doppelposterei, muss mich hier mal anmelden um meine Beiträge auch editieren zu können.



  • Das -o bedeuted Output und der Bezeichner dahinter gibt die Ausgabedatei an. Also gehört -o und test zusammen.

    gcc -std=c99 -o test test.c
    


  • 0,2079 schrieb:

    Hab ich schon versucht, geht nicht:

    GCC does not include a C runtime library. This is supplied by the platform. The MinGW port of GCC uses Microsoft's original (old) Visual C runtime, MSVCRT, which was targeted by Microsoft Visual Studio 6 (released in 1998).

    C99 is a standard which did not exist when MSVCRT was created. MSVCRT seems to conform to C89 (mostly).

    Was soll denn dieser Schwachfug. Seit wann bestimmt die konkrete Implementierung der Bibliothek den Sprachstandard des Compilers?



  • Seit die Standardbibliothek Teil der Sprache ist. Also quasie immer.



  • Tim schrieb:

    Seit die Standardbibliothek Teil der Sprache ist. Also quasie immer.

    Die Implementierung der Bibliothek ist nicht Teil des Sprachstandards.
    Wer lesen kann, ist klar im Vorteil.
    quasi schreibt man quasi und nicht quasie.



  • Aus Wikipedia,

    Wikipedia schrieb:

    Wichtigste Neuerungen von C99:
    - Unterstützung von komplexen Zahlen durch den neuen Datentyp _Complex und entsprechende Funktionen in der Standardbibliothek.
    - Erweiterte Unterstützung von Gleitkommazahlen inklusive neuer mathematischer Funktionen in der C-Bibliothek.

    Also ohne entsprechende Standardbibliothek ist auch nix mit schönen neuen C99-Sachen.



  • Wutz schrieb:

    Tim schrieb:

    Seit die Standardbibliothek Teil der Sprache ist. Also quasie immer.

    Die Implementierung der Bibliothek ist nicht Teil des Sprachstandards.

    Dass hengt wol dafon ab was mann unter "Implämentirung" hir genua verstet.


  • Mod

    C99 bietet nicht nur jede Menge neue Syntax, sondern auch sehr viele neue Funktionen, besonders in der math.h. Irgendwo müssen die auch implementiert sein.



  • Tim schrieb:

    Wutz schrieb:

    Tim schrieb:

    Seit die Standardbibliothek Teil der Sprache ist. Also quasie immer.

    Die Implementierung der Bibliothek ist nicht Teil des Sprachstandards.

    Dass hengt wol dafon ab was mann unter "Implämentirung" hir genua verstet.

    das ist quasie richtig 😃


Log in to reply