Compiler und Entwicklungsumgebungen unter MacOS

MacOS X wird ohne Compiler ausgeliefert, aber Apples Entwicklungstools sind kostenlos nachzuinstallieren. Für ältere MacOS-Versionen lässt sich XCode unter developer.apple.com herunterladen. Aktuelle Macs, ab Snow Leopard, können den Appstore verwenden. Dort sucht man einfach nach XCode suchen und klickt auf Installieren.

Die Installation ist etwa 1,5GB groß. Entsprechend darf man sich für die Installation durchaus eine Stunde Zeit nehmen. Auf proggen.org werden wir vorrangig mit Kommandozeilentools arbeiten, also werden wir diese nachinstallieren. Dafür starten wir XCode und wählen im Menü XCode den Menüpunkt 'Preferences'. Im sich öffnenden Fenster wählen wir oben „Downloads“ und installieren „Command Line Tools“. Hier werden erneut 150MB nachinstalliert.

Fertig. :-) Öffnen wir nun das Terminal, sollten der C-Compiler unter gcc erreichbar sein, sowie make:

Größere Projekte lassen sich mit GNU Make verwalten. Damit ist unter MacOS nun alles installiert, was benötigt wird, um C und C++ zu programmieren. Zusammen mit einem Editor lässt sich bereits angenehm arbeiten.

Als Beispiel und Test kompilieren wir das berühmte Hello World:

Smultron mit Hello-World-Programm

speichern es im eigenen Verzeichnis unter hworld.c.

Unter „Dienstprogramme“ (Finder→Gehe zu→Dienstprogramme) starten wir 'Terminal':

Mac-Konsole

Mit dem Unix-Befehl cat wird die Textdatei zur Kontrolle nochmals ausgegeben. Anschließend wird der GNU C-Compiler gcc gerufen. Das Argument -o hworld sagt dem Compiler, dass die ausführbare Datei hworld erzeugt werden soll.

gcc -o hworld hworld.c

Anschließend wird das Programm gestartet: Unter Unix-Systemen werden Programme nur in Pfaden gesucht, die in der PATH-Variable eingetragen sind. Das eigene Verzeichnis bzw. das aktuelle Verzeichnis ('.') ist in der Regel nicht eingetragen. Daher muss es explizit angegeben werden. Mit folgendem Kommando soll also hworld im aktuellen Verzeichnis ausgeführt werden:

./hworld

Und das war es soweit auch schon.

XCode

Wie alle Entwicklungsumgebungen ist diese ausgelegt, um Fortgeschrittene und Experten zu unterstützen. Einsteigern rate ich zunächst dazu, ohne Entwicklungsumgebung zu lernen.