开发环境实际上就是“编译器+库+头文件+辅助开发工具”。
在linux上,首先分别安装object-c相关的编译器,库,辅助开发工具和头文件。
(类别:包名)
编译器:gobjc,gobjc++
库:gnustep
辅助开发工具:gnustep-make
头文件:gnustep-devel
(以上包名是ubuntu上的,其他linux发行版本的名字可能不会完全一样,但关键词肯定是相同的,比如gobjc,gnustep等)
代码示例:
Fraction.h
#import <Foundation/NSObject.h>
@interface Fraction: NSObject {
int numerator;
int denominator;
}
-(void) print;
-(void) setNumerator: (int) d;
-(void) setDenominator: (int) d;
-(int) numerator;
-(int) denominator;
@end
Fraction.m
#import "Fraction.h"
#import <stdio.h>
@implementation Fraction
-(void) print {
printf("%i/%i", numerator, denominator);
}
-(void) setNumerator: (int) n {
numerator = n;
}
-(void) setDenominator: (int) d {
denominator = d;
}
-(int) denominator {
return denominator;
}
-(int) numerator {
return numerator;
}
@end
main.m
#import <stdio.h>
#import "Fraction.h"
int main(int argc, const char *argv[]) {
Fraction *frac = [[Fraction alloc] init];
[frac setNumerator: 1];
[frac setDenominator: 3];
printf("The fraction is: ");
[frac print];
printf("\n");
[frac release];
return 0;
}
Makefile示例:
Fraction:
gcc Fraction.m main.m `gnustep-config --objc-flags` -lgnustep-base `gnustep-config --objc-libs` -Wl,--no-as-needed -o Fraction
运行结果:
chenqi@pek-qchen1-d1:~/projects/OBJ-C [1] $ ./Fraction
The fraction is: 1/3
chenqi@pek-qchen1-d1:~/projects/OBJ-C [1] $