当前位置 : 主页 > 编程语言 > c++ >

objective-c – 如何编译在Windows上使用NSApplication的GNUstep应用程序?

来源:互联网 收集:自由互联 发布时间:2021-06-23
我正在探索在 Windows上使用GNUstep编译应用程序.这是我的main.m文件: #import ???/???.hint main(int argc, const char *argv[]) { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; [NSApplication sharedApplication]
我正在探索在 Windows上使用GNUstep编译应用程序.这是我的main.m文件:

#import <???/???.h>

int main(int argc, const char *argv[]) 
{
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
    [NSApplication sharedApplication];
    [pool release];
}

我意识到这至少是一个不完整的片段,它显然不会做任何事情.我已经尝试了几个不同的import语句,包括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,我能够通过谷歌自己找到答案的页面:

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文件似乎独立运行.

网友评论