Я знаю, что это очень старая статья, но я нашел решение, которое стало доступно только недавно и включает почти все функции Objective-C 2.0 на платформе Windows.
С появлением gcc 4.6 в компилятор Objective-C была добавлена поддержка функций языка Objective C 2.0 (блоки, синтаксис точек, синтезированные свойства и т. Д.) ( Подробности см. В примечаниях к выпуску ). Их среда выполнения также была обновлена, чтобы работать почти так же, как собственная среда выполнения Apple Objective-C 2.0. Короче говоря, это означает, что (почти) любая программа, которая законно скомпилируется с Clang на Mac, также скомпилирует с gcc 4.6 без изменений.
Напомним, что одной из функций, которая недоступна, являются литералы словаря / массива / и т. Д., Поскольку все они жестко запрограммированы в Clang для использования классов Apple NSDictionary, NSArray, NSNumber и т. Д.
Однако, если вы счастливы жить без обширных рамок Apple, вы можете. Как отмечалось в других ответах, GNUStep и Cocotron предоставляют модифицированные версии библиотек классов Apple, или вы можете написать свои собственные (мой предпочтительный вариант).
MinGW - это один из способов получить GCC 4.6 на платформе Windows, который можно загрузить с веб-сайта MinGW . Убедитесь, что при установке вы включаете установку C, C ++, Objective-C и Objective-C ++. Хотя это необязательно, я бы также предложил установить среду MSYS.
После установки источник Objective-C 2.0 может быть скомпилирован с:
gcc MyFile.m -lobjc -std=c99 -fobjc-exceptions -fconstant-string-class=clsname (etc, additional flags, see documentation)
MinGW также включает поддержку компиляции собственных приложений Windows с графическим интерфейсом с -mwindows
флагом. Например:
g++ -mwindows MyFile.cpp
Я еще не пробовал, но я думаю, что если вы поместите свои классы Objective-C в Objective-C ++ на максимально возможный уровень, вы сможете успешно переплетать родной Windows GUI C ++ и Objective-C в одном приложении Windows.