Zum Inhalt springen

C-Compiler für Windows


Engel912

Empfohlene Beiträge

Moin zusammen,

ich bin derzeit am Üben, was die Programmierung angeht. Da ich nicht auf jeden Rechner, mit dem ich so "spiele", SiSy installieren will (das ist die tolle Programmierungsumgebung der WBH), war ich auf der Suche nach einem Freeware Tool um meine Programme einzuklappern, zu kompilieren und zu testen.

Ich wurde auf Bloodshed Dev-C++ aufmerksam gemacht. Angeblich könne das Ding auch "einfaches" C. Leider bekomme ich schon wenn ich die Übungen abtippe Fehlermeldungen (z.B. steht in den Scripten immer "void main()" - das Tool gibt den Fehler aus " 'main' must return 'int' " ... was auch immer es damit sagen will.

Jetzt suche ich natürlich ein Tool, welches ich als Freeware nutzen kann, und das mit hilft, die ersten Hürden zu nehmen, ohne gleich so kompliziert zu sein.

Bin für jede Idee und jeden Tipp dankbar :)

Gruß

Danny:rolleyes:

PS: ich werde nie ein Starprogrammierer ...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Anzeige: (wird für registrierte Benutzer ausgeblendet)

Hi Danny,

das einfachste Tool ist ein vernünftiger Editor mit der Mindestanforderung Syntaxhighlighting. Empfehlenswert ist z.B. Notepad++ (-->google). Damit bekommst Du aber keinen C++ Compiler. Den musst Du gesondert installieren. Das Stichwort für einen freien C/C++ Compiler ist :

http://www.mingw.org/

Dazu gibt es unzählige Anleitungen im Internet und es lohnt nicht, das hier ausführlicher zu erklären.

Einfacher ist es, wenn Du gleich Linux nimmst (wolltest Du das nicht eh installieren ?), denn da bekommst Du alles erforderliche frei Haus.

Ansonsten könntest Du noch einen Blick auf Eclipse oder Visual Studio Express werfen, die allerdings komplizierter in der Bedienung sind, aber deutlich mehr Komfort bieten. Für den Einstieg allerdings nicht empfehlenswert.

'main' must return 'int'

Das bedeutet, dass der Compiler einen Rückgabewert vom Typ int an das Betriebssystem erwartet. Hier kann z.B ein Fehlercode (0 = ok, 1= Fehler) zurückgegeben werden. Üblicherweise sind main-Funktionen, aber vom Typ void (also kein Rückgabewert), zudem ist das C++ eigentlich dem Entwickler überlassen. Das hier int erwartet wird, deutet darauf hin, dass Du einen C-Compiler verwendest. In welcher Sprache sind denn Deine Beispiele geschrieben ? C und C++ sind nicht identisch !!

Wichtig ist, dass es in C++ (im Gegensatz zu java) nur eine main-Methode in Deinem C++ Programm geben darf, da dies immer der Einstiegspunkt ist.

Viel Erfolg !

Link zu diesem Kommentar
Auf anderen Seiten teilen

Einfacher ist es, wenn Du gleich Linux nimmst (wolltest Du das nicht eh installieren ?), denn da bekommst Du alles erforderliche frei Haus.

daheim, ja ... ich wollte aber was haben, dass ich auch "unterwegs" mal nutzen kann (wie z.b. Mittagspause im Office)

In welcher Sprache sind denn Deine Beispiele geschrieben ? C und C++ sind nicht identisch !!

Im GS ist alles in C. Ich habe da einen Grundkurs aus dem Onlinecampus bei uns runtergezogen. Und da steht eben "void main()". Das Galileo-Openbook für C schreibt da halt "int main(void)" - und damit gehts... frage ich mcih natürlich, ob mein Compiler nen Schlag hat, ob ich zu doof bin, oder ob die FH da was "falsches" rausgegeben hat.

Ansonsten ist die Umsetzung von Programmen anscheinend nicht das große Drama ... schlimmer sind die Vorbereitungen - also WIE gehe ich mein Problem an.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Nein, derart grundlegende Fehler gibt es nicht in Compilern (auch wenn ich den von Dir erwähnten nicht kenne). Aber C ist bei mir auch lange her ...

Insofern ist der Fehler in Deinem Skript, da gemäß ANSI-C-Standard int als Rückgabewert vorgeschrieben ist.

Ansonsten ist die Umsetzung von Programmen anscheinend nicht das große Drama ... schlimmer sind die Vorbereitungen - also WIE gehe ich mein Problem an.
Das entspricht der Realität. Für die eigentliche Codierung verwendet man deutlicher weniger Zeit als für die "Vorarbeiten". Stichwort Vorgehensmodell.
Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich wurde auf Bloodshed Dev-C++ aufmerksam gemacht. Angeblich könne das Ding auch "einfaches" C. Leider bekomme ich schon wenn ich die Übungen abtippe Fehlermeldungen (z.B. steht in den Scripten immer "void main()" - das Tool gibt den Fehler aus " 'main' must return 'int' " ... was auch immer es damit sagen will.

Hallo,

zwei Varianten: Microsoft Visual Studio Express in der C++-Version. Ist (soweit ich weiß) kostenlos. Im Zweifel bekommst Du aber als Student drastische Nachlässe.

Visual Studio hat ne hübsche GUI und ist für den Einstieg gut genug. Leider wird man etwas verwöhnt und läuft in Gefahr Microsoft eigene Konstrukte (die nicht ANSI sind) zu benutzen. Fazit: Schneller Einstieg mit Gefahr wichtige Dinge nicht zu lernen.

Visual Studio Kann man aber nicht überall installieren, da Admin-Rechte verlangt werden. Und wohl IMO auch eine Internet-Verbindung

Und dann der schon angesprochene Notepad-Editor (sehr gut!) plus Cygwin-Umgebung.

Cygwin ist eine Übersetzung der Standard-Linux-Werkzeuge für Windows. Kommt mit ein paar Feinheiten/Gemeinheiten in der Benutzung (Beispiel: Cygwin kennt keine Laufwerksbuchstaben und unterscheidet zwischen Groß/Kleinschreibung, was auf einem Windows-Rechner ein Problem ist). Ansonsten kann man damit sehr gut programmieren.

Viele Grüße

Link zu diesem Kommentar
Auf anderen Seiten teilen

Und da steht eben "void main()".

Hallo,

das ist ein Fehler im Skript.

Die Funktion heißt korrekt

int main(int argc, char** argv).

Aber: Praktisch alle Compiler/Laufzeitumgebung akzeptieren auch "int main()" und manche Compiler akzeptieren sogar "void main()". Und letzteren Compiler solltest Du nicht zum lernen benutzen, da Du ein falsches C lernst.

Vermutlich ist es aber so, dass beim Compiler Deiner Hochschule einfach irgendwelche Flags komisch gesetzt werden und dadurch fehlerhafte Aufrufe scheinbar funktionieren.

Solche Flags brauchen auch moderne Compiler, weil es immer noch C-Code aus den 60igern und 70igern gibt, in dem derartig schlampig gearbeitet wurde.

Viele Grüße

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

danke für deine Ausführungen. ein C++ Compiler hilft momentan leider noch nicht - ich soll ja erst mal C lernen ;)

Interessant ist das mit dem "main" ... ich denke, ich werde der Einfachheit halber mal beim Prof nachfragen ;) Danke aber auch hier für die Erläuterungen - das hilft mir zumindest beim Verständnis des Problems

Gruß

Danny

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

danke für deine Ausführungen. ein C++ Compiler hilft momentan leider noch nicht - ich soll ja erst mal C lernen ;)

Interessant ist das mit dem "main" ... ich denke, ich werde der Einfachheit halber mal beim Prof nachfragen ;) Danke aber auch hier für die Erläuterungen - das hilft mir zumindest beim Verständnis des Problems

Gruß

Danny

Doch hilft. :)

C ist eine Teilmenge von C++.

Sprich: Ein C++-Compiler kann mehr als ein C-Compiler, aber diese Mehrleistung musst Du nicht benutzen. Mir ist übrigens auch kein reiner C-Compiler mehr bekannt. Abgesehen von irgendwelchen Exoten, etwa HPUX.

Echte, reine C-Compiler sind technisch ... zurückgeblieben. Und können Dein Problem mit der main-Funktion erklären. Früher wurde wirklich Software geschrieben, die zum weinen ist. (*)

Viele Grüße

(*) Ich habe sowas gerade beruflich in der Mache. Rund 5000 Zeilen Code, aber auch mehrere tausend(!!) Warnungen. Schalte ich den gcc-Compiler auf den höchsten Warnlevel, stürzt mir gelegentlich der Compiler ab, weil er soviele Warnungen nicht mehr vearbeiten kann... :mad: Schalte ich dann noch ein, dass der Compiler sich an den ANSI-Standard hält, dann kann ich nicht eine einzige Datei übersetzen, aus den Warnungen werden dann hunderte von Fehlern ...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Man benötigt für Visual Studio Express keine Internetverbindung. Und ja, es ist kostenlos. Aber zum Einstieg ist das verdammt schwierig. Und man übersieht leicht, was jetzt eigentlich C/C++ ist und was von der Entwicklungsumgebung "dazugemogelt" wird.

Ich glaube ebenfalls kaum, dass man noch einen reinen C-Compiler finden wird. insofern war ich auch am grübeln, warum void main bemängelt wird. Wenn ich mich richtig erinnere kann man bei gcc mittels "gcc -xc ansi" (oder so ähnlich..) ANSI-C erzwingen. Vielleicht ist das oder etwäs ähnliches bei Dir gesetzt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.




×
  • Neu erstellen...