我做了一个简单的实验,我在Xcode中编写了以下代码:
int main(int argc, char** argv)
{
NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];
NSApplication* app = [[NSApplication alloc] init];
NSWindow* window = [[NSWindow alloc]
initWithContentRect: NSMakeRect(0, 0, 640, 480)
styleMask: NSTitledWindowMask | NSMiniaturizableWindowMask
backing: NSBackingStoreBuffered
defer: NO];
[window setTitle: @"New Window"];
[window center];
[window makeKeyAndOrderFront:nil];
[app run];
[pool release];
return 0;
}
Run Code Online (Sandbox Code Playgroud)
它按预期运行,一个新的空窗口,但如果我使用命令行在终端下编译它:
$ g++ test.mm -framework Cocoa
$ ./a.out
Run Code Online (Sandbox Code Playgroud)
没有窗口,它会在[app run]轻而易举.
我做错了吗?为什么Xcode和命令行之间有不同的行为?有人能告诉我如何在命令行中实现相同的行为吗?
提前致谢.