これは非常に古い投稿であることは承知していますが、最近利用可能になり、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つは、ディクショナリ/配列/その他のリテラルです。これらはすべてClangにハードコードされており、AppleのNSDictionary、NSArray、NSNumberなどのクラスを使用します。
ただし、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)
MinGWには、-mwindows
フラグを使用してネイティブGUI Windowsアプリケーションをコンパイルするためのサポートも含まれています。例えば:
g++ -mwindows MyFile.cpp
まだ試していませんが、Objective-CクラスをObjective-C ++で可能な限り高い層でラップすると、ネイティブのWindows GUI C ++とObjective-Cをすべて1つのWindowsアプリケーションでうまく組み合わせることができると思います。