これが非常に古い投稿であることは認識していますが、最近利用可能になり、Windows プラットフォームでほぼすべての Objective-C 2.0 機能を有効にするソリューションを見つけました。
gcc 4.6 の出現により、Objective-C 2.0 言語機能 (ブロック、ドット構文、合成プロパティなど) のサポートが Objective-C コンパイラに追加されました (詳細については、リリース ノートを参照してください)。ランタイムも更新され、Apple 独自の Objective-C 2.0 ランタイムとほぼ同じように動作するようになりました。つまり、Mac で Clang を使用して合法的にコンパイルされる (ほぼ) すべてのプログラムは、修正なしで gcc 4.6 でもコンパイルされるということです。
補足として、利用できない機能の 1 つは、Apple の NSDictionary、NSArray、NSNumber などのクラスを使用するために Clang にすべてハードコードされているため、ディクショナリ/配列/その他のリテラルです。
ただし、Apple の広範なフレームワークがなくても構わない場合は、そうすることができます。他の回答で述べたように、GNUStep と Cocotron は、Apple のクラス ライブラリの変更されたバージョンを提供するか、独自に作成することができます (私の推奨オプション)。
MinGW は、Windows プラットフォームで GCC 4.6 を入手するための 1 つの方法であり、MinGW Web サイトからダウンロードできます。インストールするときは、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)
-mwindows
MinGW には、フラグを使用してネイティブ GUI Windows アプリケーションをコンパイルするためのサポートも含まれています。例えば:
g++ -mwindows MyFile.cpp
私はまだ試していませんが、Objective-C クラスを Objective-C++ で可能な限り最上位の層でラップすると、ネイティブ Windows GUI C++ と Objective-C をすべて 1 つの Windows アプリケーションでうまく絡ませることができるはずです。