嗨,我是初学者,学习目标c。
我发现错误“hello.m:1:34: Foundation/Foundation.h: 没有这样的文件或目录”
我开始知道我需要制作一个 make 文件
我可以知道如何制作 make 文件吗
无需创建 makefile。如果按照 Pax 上面的指示从“所有程序 -> GNUstep -> Shell”启动 MinGW,则只需编译 .m 文件即可。
我的 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。 (往上看。)
-
在 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!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)