2

我知道如何使用 mingw 的 gnustep 版本编译目标 c 程序。

但我不喜欢他们的 shell,我想使用标准的 mingw gcc 编译器。

我当然把这个 gcc bin 目录放在环境路径中,在我的 helloworld.m 目录中打开命令提示符

#import <Foundation/Foundation.h> 
int main (int argc, const char * argv[])
{
  NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
  NSLog (@"Hello World!");
  [pool drain];
  return 0;
}

并输入

gcc -o hello hello.m -I /GNUstep/System/Library/Headers -L /GNUstep/System/Library/Libraries -lobjc -lgnustep-base -fconstant-string-class=NSConstantString

但它不起作用,因为它找不到foundation/foundation.h

如何解决这个问题,如果可能的话避免在 hello 源代码中进行硬编码?

4

2 回答 2

4

看看博主要写的帖子的结尾:

gcc `gnustep-config --objc-flags` -o hello2 hello2.m -L /GNUstep/System/Library/Libraries -lobjc -lgnustep-base

似乎您总是必须通过 GNUStep

于 2010-08-21T15:51:07.873 回答
3

我遇到了同样的问题。像下面这样修改命令行解决了我的问题。

gcc -I"c:/GNUstep/GNUstep/System/Library/Headers" -L "c:/GNUstep/GNUstep/System/Library/Libraries" -o hello hello.m -lobjc -lgnustep-base -fconstant-string-class=NSConstantString
于 2012-02-02T13:51:29.700 回答