我的 GNUstep 安装在 c:\GNUstep\GNUstep\System 中。如果你的不同,你应该相应地更改 Foundation.h 的导入。
我这样做了:
- 创建如下所示的 c:\myprogs\obj-c\hello\hello.m:
//------------ 你好.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 外壳。(往上看。)
在 shell 命令行上,切换到程序代码所在的目录。(请注意,由于这不是 Unix,因此必须包含 Windows 驱动器号。):
cd /c/myprogs/obj-c/hello
编译程序:
gcc -o hello hello.m -I/c/GNUstep/GNUstep/System/Library/Headers \
-L /c/GNUstep/GNUstep/系统/库/库 -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!