Wiem, że to bardzo stary post, ale znalazłem rozwiązanie, które stało się dostępne dopiero niedawno ORAZ umożliwia prawie wszystkie funkcje Objective-C 2.0 na platformie Windows.
Wraz z pojawieniem się gcc 4.6 do kompilatora Objective-C dodano obsługę funkcji języka Objective-C 2.0 (bloki, składnia kropek, właściwości syntezowane itp.) (Szczegółowe informacje znajdują się w uwagach do wydania ). Ich środowisko wykonawcze zostało również zaktualizowane, aby działało prawie identycznie jak własne środowisko wykonawcze Apple Objective-C 2.0. W skrócie oznacza to, że (prawie) każdy program, który zgodnie z prawem skompiluje się z Clangiem na Macu, również skompiluje się z gcc 4.6 bez modyfikacji.
Na marginesie, jedną z funkcji, która nie jest dostępna, są literały słownik / tablica / etc, ponieważ wszystkie są zapisane na stałe w Clang, aby używać klas Apple NSDictionary, NSArray, NSNumber itp.
Jeśli jednak lubisz żyć bez rozbudowanych platform Apple, możesz to zrobić. Jak zauważono w innych odpowiedziach, GNUStep i Cocotron zapewniają zmodyfikowane wersje bibliotek klas Apple, lub możesz napisać własną (moja preferowana opcja).
MinGW to jeden ze sposobów uzyskania GCC 4.6 na platformę Windows i można go pobrać ze strony internetowej MinGW . Upewnij się, że podczas instalacji dołączasz instalację C, C ++, Objective-C i Objective-C ++. Chociaż opcjonalne, sugerowałbym również instalację środowiska MSYS.
Po zainstalowaniu źródło Objective-C 2.0 można skompilować z:
gcc MyFile.m -lobjc -std=c99 -fobjc-exceptions -fconstant-string-class=clsname (etc, additional flags, see documentation)
MinGW obejmuje również obsługę kompilacji natywnych aplikacji Windows GUI z -mwindows
flagą. Na przykład:
g++ -mwindows MyFile.cpp
Jeszcze nie próbowałem tego, ale wyobrażam sobie, że jeśli opiszesz swoje klasy Objective-C w Objective-C ++ na najwyższej możliwej warstwie, powinieneś być w stanie skutecznie przeplatać natywny GUI Windows C ++ i Objective-C wszystko w jednej aplikacji Windows.