已编辑
我一直在尝试开始使用 Objective-c 进行编码。它只是一个尝试 getter 和 setter 方法的简单程序。还打印 Hello World。以下是我的代码:
#import <objc/Object.h>
@interface Car:Object{
int wheel: 5;
}
- (int)wheel;
- (void)setWheel: (int)newWheel;
@end
#include <stdio.h>
@implementation Car
- (int)wheel{
return wheel;
}
- (void)setWheel: (int)newWheel{
wheel = newWheel;
}
@end
#include <stdlib.h>
int main(void){
printf("Hello World");
}
我现在得到垃圾
/tmp/cc3UC6jY.o: In function `__objc_gnu_init':
hello.m:(.text+0x6d): undefined reference to `__objc_exec_class'
/tmp/cc3UC6jY.o:(.data+0x1c0): undefined reference to `__objc_class_name_Object'
collect2: error: ld returned 1 exit status
我使用了命令gcc -o hello hello.m -lobjc
我花了几个小时在谷歌上搜索这个答案。
最佳答案
为我编译并运行了以下代码变体:
#import <objc/Object.h>
@interface Car : Object {
int wheel;
}
- (int)wheel;
- (void)setWheel: (int)newWheel;
@end
@implementation Car
- init {
wheel = 5;
return self;
}
- (int)wheel {
return wheel;
}
- (void)setWheel: (int) newWheel {
wheel = newWheel;
}
@end
#include <stdio.h>
int main(void){
printf("Hello World\n");
id myCar = [[Car alloc] init];
printf("Wheel value is %d\n", [myCar wheel]);
return 0;
}
关于objective-c - 如何在 Linux 中运行简单的 Objective-C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19734792/