我正在嘗試編譯Mac上其他程序員編寫的一些Objective-C代碼。我正在使用GNUstep for Windows試圖讓我的家用電腦上運行這些代碼。我真的只需要他的代碼位就可以運行,並且在Objective-C中幾乎沒有(讀取:零)經驗。下面是代碼:「在GNUstep for Windows上找不到'NSApplicationDelegate'的協議聲明?
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 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'的協議聲明,以及幾個看起來像語法錯誤的錯誤(程序中的'@',以及一些不存在的預期標識符)
我一直在Google上搜索這個問題,它看起來像目標C中的協議聲明發生的方式可能在某些時候發生了變化?人們談論10.6和以前版本的OSX之間的區別......我不確定這是我面對的同樣的問題,還是如何使GNUstep能夠使用這種較舊的語法。再一次,我幾乎不知道我在說什麼,剛開始進入這個編程,所以如果我留下了關鍵信息,請讓我知道。
謝謝你的時間!
這些是我得到確切的錯誤:AntennaPatternGenAppDelegate.h:10:1:錯誤:無法找到協議聲明 'NSApplicationDelegate' AntennaPatternGenAppDelegate.h:14:1:錯誤:流浪 '@' 的程序 AntennaPatternGenAppDelegate.h:14:29:error:expected'=',',';','asm'或'_ _attribute__'before'NSWindow' AntennaPatternGenAppDelegate.m:9:1:error:expected identifier或 '(' 前 'IM plementation' AntennaPatternGenAppDelegate.m:11:1:錯誤:在程序雜散 '@' AntennaPatternGenAppDelegate.m:13:71:錯誤:預期 ';' 前 '{' 令牌 – Eric
我不不認爲有一個正式的協議,它必須是第四個e非正式協議。你應該可以刪除它,即刪除''部分。 –
刪除該部分的確清除了列表中的第一個錯誤,謝謝!有沒有人有任何想法如何擺脫其他錯誤?在我看來,這裏的語法是不對的,而且這些程序在某些系統上顯然編譯得很好,因爲它們已經被使用了。我在這裏使用了錯誤的版本/選項嗎?謝謝! – Eric