开发环境实际上就是“编译器+库+头文件+辅助开发工具”。linux
在linux上,首先分别安装object-c相关的编译器,库,辅助开发工具和头文件。c++
(类别:包名)
ubuntu
编译器:gobjc,gobjc++工具
库:gnustep开发工具
辅助开发工具:gnustep-makecode
头文件:gnustep-devel开发
(以上包名是ubuntu上的,其余linux发行版本的名字可能不会彻底同样,但关键词确定是相同的,好比gobjc,gnustep等)编译器
代码示例:it
Fraction.h
io
#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/3chenqi@pek-qchen1-d1:~/projects/OBJ-C [1] $