UPDATE: Mittlerweile gibt es von Trolltech ein Plugin, welches direkt C++ Entwicklung mit Qt und CDT in Eclipse möglich machen soll, zu finden unter diesen Link. Dort gibt es auch direkt von Trolltech eine Anleitung, wie man das Ganze zum Laufen bekommt. Wie auch in den Comments schon erwähnt, wurde diese Plugin erst ein paar Monate nach dem Erstellen dieses Tutorials veröffentlicht. Prinzipiel ist dieses Tutorial mitlerwiele überflüssig und nicht mehr up to date. Wer Lust hat, kann diese Anleitung trotzdem lesen ;-)

Während des Studiums musste ich mich wohl oder übel mit Eclipse anfreunden. Dabei verhielt es sich wie mit Bier: erst schmeckt es bitter, dann kommt man nicht mehr davon los. Sodann stellte sich nun die Frage, ob man nicht alles mit Eclipse programmieren kann: C++, C#, PHP, XML, … Die Antwort ist ja, naja fast ;-) . Hier geht es aber erstmal nur darum, wie man Eclipse C++ und Qt tauglich macht und werde dies hier mal kurz und knapp (ich habe es jedenfalls versucht) beschreiben. Ich habe schon viele Threads in Foren gelesen und viele Blogs durchstöbert, aber immer fehlte ein Punkt oder die Lösung war nicht ganz so zufriedenstellend, wie ich es gerne hätte.

Voraussetzungen für diese(s) Tutorial / HowTo / Anleitung

Ich gehe davon aus, dass folgende Software installiert ist und funktioniert:

  • Java (SDK, beinhaltet die Runtime)
  • Eclipse, zu bekommen unter www.eclipse.org

Das ist erstmal die Grundlage. In Java kann nun schon fleißig losprogrammiert werden, aber wir wollen ja C++ programmieren mit Qt, also geht es weiter und wir kommen nun zu dem wichtigen Teil.

Installation von MinGW, MSYS und Qt

Zuerst brauchen wir den Compiler und andere wichtige Tools. Da wir ja auch Qt verwenden möchten können wir einige Schritte sparen. Normalerweise müssen wir nun von www.mingw.org/download.shtml alle benötigten Pakete runterladen, was den Compiler betrifft. Das brauchen wir aber nicht, da Trolltech ein fast komplettes Paket anbietet. Wir benötigen von dieser Seite aber trotzdem noch ein Paket, auf das nur schwer verzichtet werden kann: MSYS. Einfach das Executable runterladen (MSYS-1.0.10.exe), natürlich die aktuelle Version.

Nun geht es ab auf die Seite von Trolltech, um uns Qt runter zu laden. Auf der Startseite gibt es gleich einen großen Download Button, den wir auch betätigen, um in den Downloadbereich zu kommen. Bei dem Paket, was wir runterladen wollen, handelt es sich um die Qt/Windows Open Source Edition. Der eben noch aktuelle gewesene Dateiname ist: qt-win-opensource-4.2.3-mingw.exe, der auch gleich verrät, dass MinGW mit an Board ist. Hier noch mal schnell der Link zum Downloadbereich: http://www.trolltech.com/developer/downloads/qt/windows

Wir sollten nun 2 Externe Pakete (bezüglich Eclipse) runtergeladen haben:

  • qt-win-opensource-4.2.3-mingw.exe
  • MSYS-1.0.10.exe

Beide werden nun in der obigen Reihenfolge installiert. Bei der Installation von Qt wird gefragt, ob MinGW runtergeladen und mit installiert werden soll. Das machen wir natürlich. Haben sie jedoch MinGW schon installiert, brauchen sie nur den Pfad dorthin angeben. Als Empfehlung um spätere Probleme auszuschließen, sollten nur die Standard Verzeichnisse bei der Installation verwendet werden, bzw. nur Verzeichnisnamen ohne Lehrzeichen.

Konfiguration für MinGW und die Befehle make, qmake und g++

Nach der Installation der beiden Pakete müssen diese noch im PATH (Pfad) von Windows angegeben werden, damit die Befehle make, g++, qmake, … von überall aufgerufen werden können: Systemsteuerung -> System -> Erweitert -> Umgebungsvariablen. Im unteren Fenster (Systemvariablen) suchen sie nun nach der Zeile “Path C:\Windows\…” und klicken dann auf Bearbeiten. Die bestehenden Einträge dürfen nicht gelöscht werden!!! Sie fügen in der Zeile nur die neuen Pfade hinzu: zum Beispiel “C:\MinGW\bin für MinGW”, entsprechendes machen sie auch für MSYS und Qt, zum Beispiel “C:\msys\1.0\bin” und “C:\Qt\4.2.3\bin”. Wie oben schon gesagt, die bestehenden Einträge/Verzeichnisse nicht löschen, ganz wichtig. In der Eingabeaufforderung sollte nun möglich sein, spätestens nach einem Neustart de Systems, make –v, qmake –v, g++ -v aufrufbar sein.

Installation von CDT in Eclipse und Anpassung von mingw32-make.exe und make.exe

Nun fehlt nur noch CDT. Dies wird in Eclipse als Plugin installiert. Auf der Seite www.eclipse.org/cdt/downloads.php wird dies erklärt. In Eclipse auf Help -> Software Updates -> Find and Install. Dann “Search for New Features to install” -> Next. In diesem Fenster fügen sie einfach die neue Remotesite ein (die auf der Downlaodseite angegeben ist) und können dann das Plugin ganz leicht automatisch installieren. Eclipse CDT Remotesite anwählen -> Finish und dann die Pakete auswählen und installieren lassen. Das sollte es gewesen sein und CDT Plugin ist installiert.

Das einfache Kompilieren von C++ Dateien sollte jetzt schon funktionieren. Allerdings sei angemerkt, dass der make Befehl, den Eclipse benutzt, der von MSYS ist und nicht der von MinGW. Dieser nennt sich “mingw32-make.exe”. Nun gibt es zwei Möglichkeiten: Entweder man ändert den make Befehl in den Projekteinstellungen von Eclipse oder man benennt einfach die Datei “make.exe” im MSYS-Bin-Verzeichnis in “make.exe.old” um und man macht eine Kopie von der Datei “mingw32-make.exe” im MinGW-Bin-Verzeichnis und benennt diese in “make.exe” um. Somit wird nun immer beim Aufruf von make in Wirklichkeit die Kopie von “mingw32-make.exe” aufgerufen. Bei den Projekteinstellungen sollte auch immer der “PE Windows Parser” ausgewählt sein (Wichtig!). Zudem sollten die Dateirechte von Qt, MSYS und MinGW angepasst werden, wenn sie als Benutzer arbeiten und nicht als Admin. Aber das nur nebenbei.

Kommen wir zum nächsten Schritt. Um weitere spätere Fehlermeldungen vorzubeugen, gerade beim Debugen, sollte man in das Qt-Bin-Verzeichnis wechseln und das Kommando “qtvars compile_debug” eingeben. Danach kann man erstmal einen Kaffe trinken gehen.

BTW: Damit das Debuggen nachher auch wirklich funktioniert, sollte “gdb” (GNU Source-Level Debugger) installiert sein, zu bekommen unter diesen Link, wo es übrigens auch alle anderen benötigten Komponenten gibt, die man zum Arbeiten mit MinGW benötigen könnte.

Konfiguration von Eclipse

Nun geht es los Eclipse zu konfigurieren. Im Normalfall kompiliert man Programme die Qt verwenden erst mit “qmake –projekt”, dann mit “qmake” und zu guter letzt “make”. Diese Reihenfolge müssen wir jetzt auch Eclipse beibringen. Dazu benutzen wir die Funktion für externe Tools: Run -> External Tools -> External Tools. In diesem Fenster nun links mit der rechten Maustaste auf “Program” und dann “New”. Als Namen geben wir ganz oben “qmake –project” ein. Im Reiter “Main” gibt man nun bei “Location” den Pfad zu qmake ein, zum Beispiel: “C:\Qt\4.2.3\bin\qmake.exe”. Das “Working Directory” setzt man auf “${project_loc}” und die “Arguments” auf “-project”. Im nächsten Reiter “Refresh” bei “Refresh resources upon completion” einen Harken setzten. Das Ganze machen wir jetzt noch einmal, nur das wir beim Namen ganz oben “qmake” eingeben und bei Arguments den Parameter “–project” weg lassen. Ansonsten sind die Einstellungen identisch. Die beiden externen Tools entsprechen nun den Kommandos “qmake –project” und “qmake”.

Hello World und die Projekteinstellungen

Nun können wir ein neues „Standard Make C++ Projekt“ anlegen. (PE Windows Parser auswählen nicht vergessen.) Erstellen sie nun einfach eine neue Source Datei mit den Namen “test.cpp”. Damit sie nicht noch nach einer Hello World Datei suchen müssen hier schnell der Quellcode:

#include <qapplication.h>
#include <qpushbutton.h>

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

	QApplication a( argc, argv );
	QPushButton hello( "Hello world!", 0 );
	hello.resize( 250, 30 );
        hello.show();
	return a.exec();

}

Gehen sie nun auf Project -> Properties. Nun sind einige Einstellungen zu tätigen: Zuerst auf Builders und dann rechts auf Import. Jetzt einfach die beiden externen Tools “qmake” und “qmake –project” importieren und die Reihenfolge anpassen. Nach ganz oben kommt “qmake –project” und dann “qmake”. Danach folgt der Rest: CDT Makefile Builder und der Scanner Configuration Builder. Noch einmal auf Inculde Paths klicken und “C:\MinGW\include” und “C:\Qt\4.2.3\include” hinzufügen, je nachdem wo sie MinGW und Qt installiert haben. Wenn noch nicht geschehen, den Binary Parser auf “PE Windows Parser” umstellen, zu finden unter “Make Project”.

Normalerweise sollte es das gewesen sein und das Project kann gebaut werden: Project -> Build Project. Beim compilieren werden nun die benötigten Kommandos: “qmake -project”, “qmake” und “make” nacheiander automatisch ausgeführt. Im Projektverzeichnis sollte nun eine EXE-Datei zu finden sein die sie starten: “Hello World”.

Done

Ich hoffe ich konnte Ihnen mit meinem kleinen Tutorial weiterhelfen. Bei mir hat es alles so einwandfrei funktioniert und ich hoffe bei ihnen auch. Wenn es noch Fragen gibt, können sie diese hier im Commentbereich stellen oder die Foren qtforum.de oder www.eclipseproject.de besuchen. Zudem wäre ich dankbar, mich auf Fehler oder sonstige Ungereimtheiten aufmerksam zu machen oder mich einfach wissen zu lassen, ob der Beitrag ihnen geholfen hat.

  • Twitter
  • Facebook
  • MySpace
  • del.icio.us
  • Google Bookmarks
  • Digg
  • Reddit
  • Technorati