私の GNUstep インストールは c:\GNUstep\GNUstep\System にあります。異なる場合は、それに応じて Foundation.h のインポートを変更する必要があります。
これは私がしました:
- 次のような c:\myprogs\obj-c\hello\hello.m を作成します。
//--------- こんにちは。
#import <../../GNUstep/System/Library/Headers/Foundation/Foundation.h>
int main(int argc, const char* argv[])
{
NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];
NSLog(@"Hello from Hello.m!");
[pool release];
return 0;
}
//---------
MinGW シェルを起動します。(上記を参照。)
シェル コマンド ラインで、プログラム コードが配置されているディレクトリに移動します。(これは Unix ではないため、Windows のドライブ文字を含める必要があることに注意してください。):
cd /c/myprogs/obj-c/hello
プログラムをコンパイルします。
gcc -o こんにちは hello.m -I/c/GNUstep/GNUstep/System/Library/Headers \
-L /c/GNUstep/GNUstep/System/Library/Libraries -lobjc -lgnustep-base \
-fconstant-string-class=NSConstantString
(「\」文字を使用すると、コマンドを複数行に拡張できることに注意してください。)
コンパイルすると、次の情報メッセージが表示されます。
Info: resolving ___objc_class_name_NSAutoreleasePool by linking to __imp____objc_class_name_NSAutoreleasePool (auto-import)
Info: resolving ___objc_class_name_NSConstantString by linking to __imp____objc_class_name_NSConstantString (auto-import)
結果の hello.exe を実行すると、次のようになります。
2009-06-03 14:44:59.483 hello[1240] Hello from Hello.m!