我正试图编译一些由另一个程序员在Mac上编写的Objective代码。我正在使用GNUstep for Windows来尝试让这段代码在我的家用计算机上工作。我真的需要他的代码位来运行,而且我对Objective几乎没有(读:零)经验。以下是代码:
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// AntennaPatternGenAppDelegate.m
// AntennaPatternGen
//
//
#import "AntennaPatternGenAppDelegate.h"
@implementation AntennaPatternGenAppDelegate
@synthesize window;
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
// Insert code here to initialize your application
}
@end
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////以下是头文件:
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
// AntennaPatternGenAppDelegate.h
// AntennaPatternGen
//
//
#import <Cocoa/Cocoa.h>
@interface AntennaPatternGenAppDelegate : NSObject <NSApplicationDelegate> {
NSWindow *window;
}
@property (assign) IBOutlet NSWindow *window;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////我使用以下命令试图编译:
gcc -o AntennaPatternGenAppDelegate AntennaPatternGenAppDelegate.m -I /GNUstep/System/Library/Headers \
-L /GNUstep/System/Library/Libraries -lobjc -lgnustep-base并得到一个错误,上面写着“无法找到‘NSApplicationDelegate’的协议声明”,还有几个看起来像语法错误的错误(程序中的杂散'@‘,以及一些不存在的预期标识符)。
我一直在谷歌这个问题,似乎目标C中协议声明的方式可能在某个时候发生了变化?人们谈论着10.6版和以前版本的OSX.我不确定这是否是我所面临的问题,也不确定如何使GNUstep使用这种旧的语法。再说一遍,我几乎不知道我在说什么,刚刚开始进入这个程序,所以如果我忽略了关键的信息,请告诉我。
耽误您时间,实在对不起!
发布于 2012-01-03 13:08:48
我也有同样的问题。但是将这个NSApplicationDelegate从@interface AntennaPatternGenAppDelegate : NSObject NSApplicationDelegate {中删除,它运行良好(编译时没有错误)。
发布于 2011-07-12 20:55:07
我从未使用过GNUStep,但看起来他们可能已经将协议GSAppDelegateProtocol重命名了。您可以尝试更改对NSApplicationDelegate的任何引用,看看会发生什么。
编辑:
再考虑一下,它看起来可能是一种非正式的协议,所以您可能只需将其完全从头文件中删除(连同尖括号,也删除它们),一切都会正常工作。
https://stackoverflow.com/questions/6670310
复制相似问题