微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

新手 – 不能用GNUStep编译目标c

我有一个与这个问题有关的问题无法在Windows上使用Gnustep编译Objective C

我想在Windows上编译我的第一个目标c应用程序。 该文件是hello.m(在Visual Studio中创build的所有文件

#import <../Program Files/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; }

为了编译它,我在同一个目录下有一个GNUmakefile:

include $(GNUSTEP_MAKEFILES)/common.make TOOL_NAME = hello YourProg_OBJC_FILES = hello.m include $(GNUSTEP_MAKEFILES)/tool.make

据我了解,当我运行make命令“make”时,GNUmakefile将执行。

寻找C#或Java或Python或C ++示例来控制Windows远程桌面

如何在没有物理硬件的情况下利用多显示器设置的function?

如何使用c + +得到Windows DNS后缀search列表

窗口消息:WM_CREATE和WM_NCCREATE不同?

SWIG python模块创build问题

当我在GNUStep shell中执行此操作时,出现错误

GNUmakefile:1 *** missing separator. Stop.

我尝试添加一个标签到第一行。 这没有做什么。 是的,我确定这是一个标签,而不是一个空间。

如何在wp7上的XNA中轻敲手势之间创build一个延迟

如何调用C的extern函数并得到返回结构?

Asm CALL指令 – 它是如何工作的?

无法在Windows上安装ruby-debug gem

打开Python IDLE和运行命令

我有同样的问题。 我用记事本++来制作GNUmakefile。 Notepad ++的认编码是UTF8。 但是MINGW32的make.exe好像是用ANSI编码等待文件

所以,验证你的文件是否用ANSI编码。

make是抱怨你的makefile,所以你可能在某处有语法错误

请参阅: http : //www.gnu.org/software/automake/manual/make/Error-Messages.html :

这意味着make不能理解刚刚读取的makefile行。 GNU make会查找各种分隔符(:,=,配方前缀字符等)来指示它正在分析哪一行。 这个消息意味着它找不到一个有效的。

试试你可能试着直接编译:

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

你不应该提供Foundation.h头文件的完整路径。 它应该始终是#import <Foundation/Foundation.h> 。

这与你的makefile问题一起表明你的机器上没有正确的设置。 你是从msys shell还是从Windows命令行运行make命令? 如果您选择使用Windows命令行,您将面临一些问题,因为与GNUstep安装程序提供的msys外壳相反,环境设置不正确。

如果你想另一方面手动运行gcc,你可以看看这个答案 。

在你的GNUmake文件中 , YourProg_OBJC_FILES应该被修改hello_OBJC_FILES ,就像下面一样

include $(GNUSTEP_MAKEFILES)/common.make TOOL_NAME = hello hello_OBJC_FILES = hello.m include $(GNUSTEP_MAKEFILES)/tool.make

或者你也可以像这样在命令行中编译

$ gcc `gnustep-config --objc-flags` hello.m -o hello `gnustep-config --base-libs`

pkg -config这样的gnustep-config命令可以打印出gcc的编译和链接选项。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐