无法在 Windows 上使用 Gnustep 编译 Objective C

2024-05-19

嗨,我是初学者,学习目标c。 我发现错误“hello.m:1:34: Foundation/Foundation.h: 没有这样的文件或目录” 我开始知道我需要制作一个 make 文件 我可以知道如何制作 make 文件吗


无需创建 makefile。如果按照 Pax 上面的指示从“所有程序 -> GNUstep -> Shell”启动 MinGW,则只需编译 .m 文件即可。

我的 GNUstep 安装在 c:\GNUstep\GNUstep\System 中。如果您的不同,您应该相应地更改 Foundation.h 的导入。

我这样做了:

  1. 创建 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;
}

//----------

  1. 启动 MinGW shell。 (往上看。)

  2. 在 shell 命令行上,切换到程序代码所在的目录。 (请注意,由于这不是 Unix,因此必须包含 Windows 驱动器号。):

    cd /c/myprogs/obj-c/hello

  3. 编译程序:

    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!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法在 Windows 上使用 Gnustep 编译 Objective C 的相关文章

随机推荐