Я использую gnustep для target-c в Windows. Если я храню интерфейс и файлы реализации класса вместе с основным файлом, он компилируется без ошибок и дает ожидаемый результат.
Ниже приведен пример:
// File "classA.h"
#import <Foundation/Foundation.h>
@interface classA: NSObject
{
int a;
}
-(void) print;
@end
// File "classA.m"
#import "classA.h"
@implementation classA
-(void) print
{
a = 10;
NSLog(@"a = %i", a);
}
@end
// File "test.m"
#import "classA.h"
int main(int argc, char *argv[])
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSLog(@"start");
classA *objA = [[classA alloc] init];
[objA print];
[objA release];
NSLog(@"done");
[pool drain];
return 0;
}
Однако, если я поместил интерфейс и файлы реализации отдельно, при компиляции с помощью следующей команды
gcc `gnustep-config --objc-flags` -o program program.m -L /GNUstep/System/Library/Libraries -lobjc -lgnustep-base
я получаю следующую ошибку
undefined reference to `__objc_class_name_myNewClass'
collect2: ld returned 1 exit status
Как сохранить файлы отдельно и при этом успешно скомпилировать программу
Спасибо за помощь
Привет