«Не удается найти объявление протокола для« NSApplicationDelegate »» в GNUstep для Windows? - PullRequest
0 голосов
/ 12 июля 2011

Я пытаюсь скомпилировать код Objective-C, написанный другим программистом на Mac.Я использую GNUstep для 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 работать с этим старым синтаксисом.Опять же, я очень мало понимаю о чем говорю, только начинаю углубляться в это программирование, поэтому, если я оставил важную информацию, пожалуйста, дайте мне знать.

Спасибо за ваше время!

Ответы [ 2 ]

1 голос
/ 03 января 2012

У меня тоже была такая же проблема. Но удаляя это NSApplicationDelegate из @ interface AntennaPatternGenAppDelegate: NSObject NSApplicationDelegate { он работал нормально (скомпилирован без ошибок).

0 голосов
/ 13 июля 2011

Я никогда не использовал GNUStep, но похоже, что они могли переименовать протокол GSAppDelegateProtocol. Вы можете попробовать изменить любые ссылки на NSApplicationDelegate и посмотреть, что произойдет.

EDIT:

Если подумать, похоже, что это может быть неофициальный протокол, так что вы, вероятно, можете просто полностью извлечь его из файла заголовка (вместе с заостренными скобками, тоже удалить их), и все должно работать нормально.

...