Im Moment habe ich im Studium mehrere Praktika in denen ich C++ Programme entwickeln muss.

Abgenommen werden sie auf Linux Systemen und mit dem g++ Compiler. Nun benutze ich einen Mac und es bietet sich ja an die Apple IDE Xcode zu verwenden. Kostenlos und ansprechend ist Xcode ja. (Ich weiß, Xcode ist in mancherlei hinsicht scheiße, aber das soll nicht Inhalt des Artikels sein)

Um solche Projekte mit Xcode zu entwickeln schreibt man zu erst mal ein Makefile.

Ich habe ein Makefile auf Github. Das sollte das meiste abdecken. Man muss nur wenig anpassen (Abhängigkeiten zum Beispiel) und dann sollte das Funktionieren.

Nun legt man in Xcode ein neues Projekt an und wählt als Typ “External Build System” (OS X -> other)

Screen Shot 2014-04-18 at 16.55.40

Dann klickt ihr auf Next. Dort müsst ihr dann den Product-Name auswählen. Wenn ihr mein Makefile benutzt wird das der Name des Programms werden. Es ist völlig egal wie ihr das nennt. Wichtig ist nur noch, dass das Build-Tool auf /usr/bin/make steht (oder wo auch immer ihr make installiert habt)

Das Projekt ist nun angelegt.

Damit die Xcode-Autocompletion funktioniert muss man einen kleinen Workaround anwenden. Dazu legt ihr ein neues Target an

[![test_and_maschinelle_uebersetzung_and_Neuen_Beitrag_erstellen_‹kanedo_netWordPress](https://blog.kanedo.net/files/2014/04/test_and_maschinelle_uebersetzung_and_Neuen_Beitrag_erstellenkanedo_netWordPress.png)](https://blog.kanedo.net/files/2014/04/test_and_maschinelle_uebersetzung_and_Neuen_Beitrag_erstellenkanedo_net—_WordPress.png)

Das Template ist ein Command-Line Tool. Der Name ist egal (ich nenne es meistens $(PRODUCT_NAME)-doc, aber prinzipiell ist der name wieder egal. Als Typ wählt man natürlich C++ aus.

Nun ist nur noch wichtig, dass ihr immer alle Dateien sowohl zum Target $(PRODUCT_NAME)  als auch zum Target $(PRODUCT_NAME)-doc hinzufügt. Dann funktioniert auch die Autocompletion von Xcode.

Legt nun eine neue Datei an (zum Beispiel main.cpp) und fügt sie zu allen Targets hinzu. Der Build mit CMD+B sollte soweit funktionieren (evtl wirft er einen Fehler wegen des fehlenden Assets Ordners. Den legt ihr entweder an oder wenn das nicht benötigt wird setzt WITH_COPY_ASSETS auf 0 im Makefile

Einmal Bauen mit CMD+B

Nun aber zum wichtigsten Grund warum man eine IDE verwenden will: Der Debugger.

Dazu passt man die Schemes an (CMD+<) und wählt für die Run-Configuration als Executable ‘other’. Das Öffnet einen Dateidialog. Dort navigiert ihr zu Debug und wählt die Datei die den Namen des Products hat aus.

Den Rest einfach so lassen. Wenn man jetzt einen Breakpoint setzt und CMD+R drückt, sollte der Debugger halten.