Мне известно, что это очень старая статья, но я нашел решение, которое стало доступно только недавно и включает почти все функции 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.