我正在尝试编译一些由Mac上的其他程序员编写的Objective-C代码。我正在使用GNUstep for Windows尝试在家用计算机上运行此代码。我真的只需要运行他的代码位,并且使用Objective-C几乎没有(读取:零)经验。这是代码:
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 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'的协议声明”,以及几个看起来像语法错误的错误(程序中的'@',以及一些不存在的预期标识符)
我一直在谷歌搜索这个问题,似乎协议声明在Objective C中发生的方式可能在某些时候发生了变化?人们谈论10.6和以前版本的OSX之间的区别...我不确定这是否是我面临的同样问题,或者如何使GNUstep使用这种旧语法。再一次,我几乎不知道我在说什么,只是开始进入这个编程,所以如果我把关键信息留下来,请告诉我。
谢谢你的时间!
答案 0 :(得分:1)
我也有同样的问题。但是从 @interface AntennaPatternGenAppDelegate:NSObject NSApplicationDelegate {中删除 NSApplicationDelegate 它工作正常(编译时没有错误)。
答案 1 :(得分:0)
我从未使用过GNUStep,但看起来他们可能已经重命名了协议GSAppDelegateProtocol
。您可以尝试更改对NSApplicationDelegate
的任何引用,并查看会发生什么。
修改强>
第二个想法,看起来它可能是一个非正式的协议,所以你可能只是把它从头文件中完全取出(连同尖括号,也删除它们),一切都应该正常工作。