我正在探索在 Windows 上使用 GNUstep 编译应用程序。这是我的 main.m 文件:
#import <???/???.h>
int main(int argc, const char *argv[])
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
[NSApplication sharedApplication];
[pool release];
}
我意识到至少可以说这是一个不完整的片段,它显然不会做任何事情。我尝试了几种不同的导入语句,包括 Cocoa/Cocoa.h、GNUstepGUI/GMAppKit.h 等。但我总是在编译时遇到错误,我似乎无法在网上找到帮助。
这是我从 mingw shell 运行的编译命令:
gcc -o test main.m -I /GNUstep/System/Library/Headers/ \ -L /GNUstep/System/Library/Libraries/ -lobjc -lgnustep-base \ -fconstant-string-class=NSConstantString -enable-auto-import
这些是我得到的错误:
c:/WINDOWS/TEMP/ccHxKZG2.o:main.m(.data+0x390): undefined reference to '___objc_class_name_NSApplication' collect2:ld returned 1 exit status
关于我需要#import 的内容,或者我的编译命令中需要修复的内容,有什么想法吗?
谢谢!
最佳答案
多亏了 Peter Hosey,我才得以用 Google 搜索到包含答案的页面:
http://psurobotics.org/wiki/index.php?title=Objective-C
与 OS X 开发不同,您需要一个“makefile”:
将其放入与源代码相同的目录中名为“GNUmakefile”的文件中:
include $(GNUSTEP_MAKEFILES)/common.make APP_NAME = MyAppName MyAppName_HEADERS = MyAppName_OBJC_FILES = main.m MyAppName_RESOURCE_FILES = include $(GNUSTEP_MAKEFILES)/application.make
然后执行
make
页面说要执行
openapp ./MyAppName.app但是 .app 文件夹中的 .exe 文件似乎可以自行运行。
关于objective-c - 如何编译在 Windows 上使用 NSApplication 的 GNUstep 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1429638/