Mac: Eclipse C++ mit XCode-Frameworks

4mq

Erdapfel
Registriert
03.10.08
Beiträge
3
Hi,
da ich seit Jahren mit Eclipse im Java Bereich arbeite, würde ich gerne unter Mac OS X auch Eclipse für die C++ Entwicklung benutzen. XCode gefällt mir nicht so wirklich gut. Da ich wenig Cocoa etc mache sollte das auch erstmal kein Problem sein.

Soweit läuft alles ganz gut nur ist mir noch ein wenig schleierhaft, wie ich vorhandene Librarys in .framework-Form benutze. Diese Pakete sind mir noch nicht so ganz vertraut (das gab es unter Windows nicht).
Als Beispiel kann ich hier das QT-Framework oder die Ogre3D-Library anbringen. Nach vielem googlen und rumprobieren habe ich nun folgendes herausgefunden:
In den Linker Einstellungen "Libraries" links liegen lassen und stattdessen unter "Miscellaneous"->"Other Objects" die entsprechende binary-datei aus dem .framework adden. Dieser Schritt funktioniert auch.

Ich kämpfe allerdings noch mit dem Hinzufügen der Headerdateien. Gebe ich den jeweiligen "Header"-Ordner aus dem .framework an, bekomme ich haufenweise "unresolved inclusions".

Am Beispiel von QT funktioniert es, wenn ich die Includes, welche ich beim Bauen von QT benutzt habe, benutze. Das kann jedoch ja nicht der Sinn sein, weil dies ja die Includes von der Source-Version sind. Prinzipiell denke ich, dass es schon gedacht ist die Header aus dem .framework-Ordner zu nehmen. Unter XCode funktioniert dies ja auch genau so. Unter Eclipse leider nicht :(

Kann mir da jemand helfen? Danke :)
 

freddy.duese

Bismarckapfel
Registriert
05.11.05
Beiträge
146
Der Linker hat ein "-framework" switch. Das heisst du kann dort einfach OS X frameworks übergeben.
z.B.:
-framework Cocoa
-framework SDL

Das mit den Headern kann daran liegen, dass unter OS X der framework-Name bei den include Anwesiungen fehlt.
z.B.:
#include <OpenGL/gl.h>
für das Framework "OpenGL.framework"

Möglicherweise ist auch der Headersuchpfad falsch konfiguriert.
 

4mq

Erdapfel
Registriert
03.10.08
Beiträge
3
Hi,
vielen dank für deine Antwort. Ich kannte den framework-switch tatsächlich nicht, der funktioniert auch ganz gut, wenn ich den Pfad zu den frameworks mit -F angebe.

Nur, jetzt wirds interessant, ich muss dem Linker mit -F... -framework... die frameworks angeben. Der Compiler muss ja auch die Header-Dateien aus dem Framework kennen. Durch rumprobieren habe ich rausgefunden, dass es anscheinend reicht, dem Compiler nur mit -F zu sagen, wo die frameworks liegen.
Ist das der normale Weg? Linker mit -F und -framework und Compiler nur mit -F?
Ein Compilervorgang sieht also so aus bei mir:

Code:
**** Build of configuration Release for project ra2_u1_qt ****

make all 
Building file: ../Sources/main_qt.cpp
Invoking: GCC C++ Compiler
g++ -O3 -Wall -c -fmessage-length=0 -F/Users/mq/OwnProg/_Library/qt-mac-opensource-src-4.4.3/lib -MMD -MP -MF"Sources/main_qt.d" -MT"Sources/main_qt.d" -o"Sources/main_qt.o" "../Sources/main_qt.cpp"
Finished building: ../Sources/main_qt.cpp
 
Building target: ra2_u1_qt
Invoking: MacOS X C++ Linker
g++ -F/Users/mq/OwnProg/_Library/qt-mac-opensource-src-4.4.3/lib  -framework QtGui -framework QtCore -o "ra2_u1_qt"  ./Sources/main_qt.o   
Finished building target: ra2_u1_qt


Vielen Dank & Grüße,
mq
 

freddy.duese

Bismarckapfel
Registriert
05.11.05
Beiträge
146
Den üblichen weg, unter Eclipse OS X frameworks zu verwenden, kenn ich leider nicht, da ich Xcode verwende.
am besten
da sind alle gcc-darwin flags beschrieben.

Kleiner Tipp bzgl. Xcode (macht die Sache meist leichter): Ich habe mich auch erst damit anfreunden können, nachdem ich in den "All-in-One" Modus gewechselt bin. Xcode -> Preferences -> General -> Layout.
Damit ist das Fensterlayout von Xcode ähnlich den ganzen anderen IDEs.
 

4mq

Erdapfel
Registriert
03.10.08
Beiträge
3
Huhu, trotzdem danke für deine Antworten :)
Du hast auch eigentlich Recht, XCode ist nicht sooo schlimm, ich habe jetzt ein paar Wochen XCode ausprobiert (im All-In-One-Modus), aber es lässt sich nicht so wirklich flüssig mit arbeiten finde ich.
Z.B. allein die Tatsache, dass auch im All-in-One-Modus ein Doppelklick auf eine Datei ein neues Fenster öffnet. Das sind viele Kleinigkeiten, an die man sich sicher gewöhnt, aber solange der Preis dafür nicht zu hoch ist, verwende ich lieber Eclipse :)
Unter Windows hatte ich Visual Studio verwendet, aber das war auch nich sooooo mein Ding.

Ich arbeite beruflich seit einigen Jahren mit Eclipse und ich persönlich finde die IDE hervorragend, ich kann so flüssig arbeiten wie in keiner anderen IDE, aber sicher ist das Geschmackssache :)

grüße,
mq