Forum: PC-Programmierung Welchen C-Compiler?


von Hase (Gast)


Lesenswert?

Hallo! Wir fangen an der Uni jetzt mit C-Programmierung an. Unser Prof.
meinte, die benutzen da alle den GNU-C-Compiler. Leider finde ich den
jedoch nicht für Windows, überall lese ich nur von diesem
Cygwin-Unix-Emulator, aber so viel Umstand wollte ich eigentlich gar
nicht.

Was hat das damit auf sich, braucht man da tatsächlich dieses Cygwin?
Oder kennt ihr noch irgendwelche freien Alternativen zum
GNU-C-Compiler?


Gruß, Hase

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

mingw

von Μαtthias W. (matthias) Benutzerseite


Lesenswert?

Hi

http://www.cygwin.com/ ist schonmal garnicht schlecht und du solltest
wirklich den Umgang mit Unix ein wenig lernen. Die Installation ist
auch nicht wirklich schwierig. Alternativ kannst du auch mit
http://www.mingw.org/ arbeiten. Das sind allerdings alles
Kommandozeilentools. Brauchst du was grafisches (für den Einsteiger
manchmal ganz geschickt das dann nicht zig Baustellen auf einmal gibt)
kannst du dir auch mal http://www.bloodshed.net/devcpp.html anschauen.
Eine eher M$ zentrierte Geschichte ist die Express Edition von Visual
C++. Die bekommst du kostenlos bei M$. Um portable Programme zu
schreiben wirst du da aber nicht um den Download des Platform-SDK
herumkommen und du wirst eine gehörige Portion Selbstbeherschung
benötigen.

Matthias

von Hase (Gast)


Lesenswert?

Hallo, danke für die Antworten. Die grundlegenden Sachen kann ich ja
bei Unix/Linux (nen paar Konsolenbefehle, Kernel kompilieren etc...),
aber auf meinem Thinkpad ist das mit Linux so ne Sache, ich müsste erst
formatieren, die ganzen IBM Serviceprogramme/Servicepartition etc... neu
machen etc. Das ist mir immoment zu viel.

Aber dieses mingw.org klingt ganz interessant. Kann ich das in
irgendeiner Form in Programmers Notepad einbinden? Obwohl, dann kann
ich ja auch gleich BLoodsheed devcpp nehmen, hm?

von Christoph _. (chris)


Lesenswert?

DevC++ soll nicht (mehr) so gut sein, hab ich mittlerweile von mehreren
(vertrauenswürdigen) Leuten gehört. Habs allerdings selbst noch nicht
überprüft.

Code::blocks sollte zu empfehlen sein:
http://www.codeblocks.org/
Das benutzt auch den MinGW-Compiler.

von ToniT (Gast)


Lesenswert?

Wenn Du Linux auf deinem ThinkPad nutzen willst, schau Dir einfach mal
coLinux an. Mit ca. 1Gig Platz auf der Platte bist Du dabei und
brauchst nix neu zu formatieren.

http://www.colinux.org/

Gruß

von Μαtthias W. (matthias) Benutzerseite


Lesenswert?

Hi

ich meinte ja nicht das du ein Linux installieren sollst. Man kann auch
mit cygwin ganz gut das Programmiermodell von Unix kennenlernen.

Matthias

von Sebastian W. (Gast)


Lesenswert?

Hallo

Du kannst auch mingw mit der GCC verwenden, unter eclipse. Das geht,
nur habe ich den debugger GDB dort nicht zu laufen gabracht. Weiss da
einer was?

das Projekt mit c++ und eclipse heisst CDT wenn ichs noch richtig
weiss.


Sebastian

von Stefan (Gast)


Lesenswert?

Der GDB aus dem MinGW Paket ist in der OpenSource IDE Code::Blocks sehr
schön eingebunden.

Wer immer verschämt auf die grafische Debugoberfläche von VisualC++
oder Borland geschielt hat, sollte sich Code::Blocks mal ansehen.

Die Installation ist sehr einfach. Wenn der MinGW GCC Compiler (und
andere) schon installiert ist, findet Code::Blocks den bei der
Installation und bindet alles in die IDE ein.

von Sebastian W. (Gast)


Lesenswert?

Hallo

Ich wollte es halt in Eclipse machen.

Meist ist die open source Doku etwas spartanisch und über das ganze web
verstreut. Hab dann irgendwo eine Anleitung mit screenshots,... gefunden
und dann ging das.

Aber zu GDB in eclipse habe ich noch nichts gefunden.

Eigentlicher Hintergrund ist das ich mit qt4 open source arbeiten
möchte, aber da makefiles brauche,... und da kam mir eclipse gerade
recht, das recht ausgereift scheint.

Habe im Studio mit qt334 während meinem Praktikum gearbeitet.

Sebastian

von Matthias (Gast)


Lesenswert?

kostenloser c-compiler für windows:
http://www.delorie.com/djgpp/

zugehörige IDE:
http://www.rhide.com/

Okay, sieht spartanisch aus, ist es auch, aber zum Lernen vollkommen
ausreichend.

von Bartli (Gast)


Lesenswert?

DJGPP ?
Also dann doch lieber mingw, ausser man will wirklich für DOS
kompilieren.

von Suzanna (Gast)


Lesenswert?

DJGPP ist schon etwas älter, das würd ich auch lieber lassen, wenn die
Zielplattform nicht wirklich nur DOS ist...

von Weinga-Unity (Gast)


Lesenswert?

Noch ein Hinweis zu IDE.

Code::Blocks sieht zwar net aus, weiß aber nicht, wies da mit
Bibliotheken aussieht. Für DEVC++ gibts fertige Bibliotheken, die man
mit dem eingebauten Paket-Wizard (oder so) downloaden kann und es
installiert sich gleich alles was man so braucht (MYSQL, FLTK,
WXWidgets, SDL, ...)

Nimmt einige Hämmungen von Anfänger, wenns nicht gleich am Installieren
einer Bibliothek scheitert.

mfg W.K.

von Stefan (Gast)


Lesenswert?

Geschmackssache sagt der Affe und beisst in die Seife.
http://freeprogrammingresources.com/cppide.html

FLTK, WXWidgets und SDL müssten mit Code::Blocks gehen. MySQL müsste
jemand ein Template für schreiben. Ich kenne keine drei GUI Libraries
aus eigener Erfahrung. Ich will mich aber in eine GUI-Library
einarbeiten, die ich unter M$ Windows und Linux (X Windows) nutzen
kann.
http://freeprogrammingresources.com/guilib.html
http://www.libsdl.de/

Kannst du (oder ein anderer LeserIn) aus eigener Erfahrung einen Tipp
abgeben, mit welchem System man gut starten kann? Danke schon vorab!

von Christoph _. (chris)


Lesenswert?

Ein Anfänger sollte auf gar keinen Fall mit GUI-Bibliotheken wie
WxWidgets, Qt oder gtkmm beginnen. Solange man nicht eine solide
Grundlage besitzt, wird man an diesen Bibliotheken entweder verzweifeln
oder langfristig gesehen eher mäßigen bis schlechten Code schreiben, der
zu einem nicht geringen Teil aus copy&paste und vielen Foren stammt. Vom
Stil, den man sich dadurch aneignet, fang ich besser gar nicht erst an
(ich sag nur "C"-Präfix bei Klassen).

Eine solide Grundlage ist meiner Meinung nach sehr wichtig. Leider
verträgt sich das nur bedingt mit einer Sprache wie C++, bei der man
schon einiges wissen muss, um erste, sinnvolle Programme selbst
schreiben zu können. Ich würde daher zum Einstieg eher eine Sprache wie
Python empfehlen, die portabel und nicht überladen ist und in einigen
Punkten C und C++ um Längen schlägt, was Eleganz angeht.
Man sollte sich sowieso von der konkreten Programmiersprache lösen, die
immer nur Mittel zum Zweck darstellen sollte.

Aber wenn man, wie der OP, keine Wahl hat, sollte man sich trotzdem auf
jeden Fall eine aktuelle IDE holen. Veraltete Compiler setzen z.T. den
Standard nur mangelhaft um oder haben andere mehr oder weniger große
Nachteile, die man gerade als Anfänger dann beginnt für "richtig" zu
halten. Frei nach "worse is better":
http://www.jwz.org/doc/worse-is-better.html

von A.K. (Gast)


Lesenswert?

Ack, und danke für den Link.

von Mehmet K. (mkmk)


Lesenswert?

Ich hab' mir mal den Code::Blok heruntergeladen und eine
Console-Application zusammengebastelt. Zwar kann ich es fehlerfrei
compilieren, aber es erzeugt mir keine EXE-Datei.
Nach 15 Minuten suche nach der berühmten Click-Box hab' ich es
aufgegeben: kann mir bitte jemand helfen?

von pittbull_nt@yahoo.com (Gast)


Lesenswert?

hier ist noch einer: http://www.heise.de/newsticker/meldung/68595
gerade sehr gut geeignet, wenn man für dos oder sogar os/halbe was
programmieren möchte

von Stefan (Gast)


Lesenswert?

@ Christoph

Python war ein guter Tipp. Innerhalb einer halben Stunde habe ich es
geschafft, ein Minidemo zu schreiben und das Velleman K8055D USB-IO
Board anzusprechen.

Ich finde die Sprache sehr elegant und "eingängig". Hier mein erstes
Skript (Stolz):

# -*- coding: cp1252 -*-
#
# K8055D.py
# v0.1 3.2.2006
#
# Demo für die Ansteuerung des Velleman K8055D USB-IO Boards
# mit Python und dem ctypes Modul
#
# Python 2.4:   http://www.python.org
# ctypes:       http://starship.python.net/crew/theller/ctypes/
#
# OS: nt (Windows98SE)
#
import time
from ctypes import *
K8055D = windll.k8055d
ret = K8055D.Version()
ret = K8055D.OpenDevice(0)
if ret == 0:
    print 'Ausgabe von 0 bis 15 auf den digitalen Ausgängen vom K8055D
USB-Board...'
    i = 0
    while i < 16:
          ret = K8055D.WriteAllDigital(i)
          time.sleep(1) # Sonst wird es zu schnell ;-)
          i = i+1
else:
    print 'K8055D USB-Board #0 nicht gefunden.'
ret = K8055D.CloseDevice()

Das macht Spaß!
Stefan

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.