Ich bin mir bewusst, dass dies ein sehr alter Beitrag ist, aber ich habe eine Lösung gefunden, die erst seit kurzem verfügbar ist UND nahezu alle Objective-C 2.0-Funktionen auf der Windows-Plattform aktiviert.
Mit dem Aufkommen von gcc 4.6 wurde dem Objective-C-Compiler die Unterstützung für Objective-C 2.0-Sprachfunktionen (Blöcke, Punktsyntax, synthetisierte Eigenschaften usw.) hinzugefügt ( Einzelheiten finden Sie in den Versionshinweisen). Ihre Laufzeit wurde ebenfalls aktualisiert, sodass sie fast identisch mit Apples eigener Objective-C 2.0-Laufzeit funktioniert. Kurz gesagt bedeutet dies, dass (fast) jedes Programm, das mit Clang auf einem Mac legitim kompiliert wird, auch ohne Änderung mit gcc 4.6 kompiliert wird.
Nebenbei bemerkt, eine Funktion, die nicht verfügbar ist, sind Wörterbuch- / Array- / usw.-Literale, da sie alle in Clang fest codiert sind, um die Klassen NSDictionary, NSArray, NSNumber usw. von Apple zu verwenden.
Wenn Sie jedoch gerne ohne die umfangreichen Frameworks von Apple leben möchten, können Sie dies tun. Wie in anderen Antworten erwähnt, bieten GNUStep und Cocotron modifizierte Versionen der Klassenbibliotheken von Apple an, oder Sie können Ihre eigenen schreiben (meine bevorzugte Option).
MinGW ist eine Möglichkeit, GCC 4.6 auf der Windows-Plattform zu installieren , und kann von der MinGW-Website heruntergeladen werden . Stellen Sie sicher, dass Sie bei der Installation die Installation von C, C ++, Objective-C und Objective-C ++ einschließen. Obwohl optional, würde ich auch empfehlen, die MSYS-Umgebung zu installieren.
Nach der Installation kann die Objective-C 2.0-Quelle kompiliert werden mit:
gcc MyFile.m -lobjc -std=c99 -fobjc-exceptions -fconstant-string-class=clsname (etc, additional flags, see documentation)
MinGW bietet auch Unterstützung für das Kompilieren nativer Windows-GUI-Anwendungen mit dem -mwindows
Flag. Beispielsweise:
g++ -mwindows MyFile.cpp
Ich habe es noch nicht versucht, aber ich stelle mir vor, wenn Sie Ihre Objective-C-Klassen in Objective-C ++ auf der höchstmöglichen Ebene verpacken, sollten Sie in der Lage sein, native Windows-GUI C ++ und Objective-C erfolgreich in einer einzigen Windows-Anwendung zu verflechten.