是否有任何方法可以在不使用GNUStep的情况下编译ubuntu上的目标c程序?我想使用默认的C标准库,除了Objective-C的OOB语法外。我现在面临的问题是一旦我有了所有的方法,我需要一种方法来调用它们。在Mac中,我只是分配和初始化它,但在Linux上尝试编译时,clang只是给了我一个错误...任何帮助将非常感激。在没有gnustep的情况下编译目标c程序
#include <stdio.h> // C standard IO library (for printf)
#include <stdlib.h> // C standard library
// Interface
@interface test
-(void)sayHello :(char *)message;
@end
// Implementation
@implementation test
-(void)sayHello :(char *)message {
printf("%s", message);
}
int main(int argc, char *argv[]) {
test *test = [[test alloc] init];
[test sayHello:"Hello world"];
}
哪里是你的执行情况'alloc'和'init'从哪儿来没有GNUstep的(或Objective-C的运行时库)? –
是啊有没有办法从没有'alloc'或'init'的实现中调用方法? –
现代GNUstep运行时既没有实现+ alloc也没有实现-init。如果你想要它们,你可以覆盖任何地方的实现。 + alloc的实现应该只调用class_createInstance(...)请查阅您的.h以获取其余必需的API。你可能也想考虑如何使用@autorelease ie。如何管理保留柜台等。我不知道为什么一个人真的想要走这条路,只需安装GNUstep基础。 –