sudo apt-get install gnustep-devel
从网上找到的一段经典的 hello world:
#import <Foundation/Foundation.h>
int main(int argc, char **argv){
NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];
NSLog(@"Hello, Objective-C!\n");
[pool release];
return 0;
}
保存为test.m,执行编译命令:
gcc test.m `gnustep-config --objc-flags` -lgnustep-base -o test
测试
./test
OK,基本的环境和测试已经成功。作为一个objective-c的门外汉,通过百度和google,从这个脚本中得到的新知识如下。
- 变量前面的星号表示这是一个指针变量。
- objective-c中对象用中括号来进行对象调用。如:[[NSAutoreleasePool alloc] init] 转换到PHP中就类似于:
NSAutoreleasePool->alloc()->init();
- 关于字符串前面@这个符号的解释:objective-c中引号里的字符串默认是原始的C字符串,而@符号就是把C的字符串转成NSString的一个简写,而且这个@符号据说不支持中文。
- NSAutoreleasePool是对象引用计数自动处理器。后面的[pool release] 表示调用pool的release方法进行内存释放。
#import <Foundation/Foundation.h>
int main(){
NSLog(@"Hello, Objective-C!\n");
return 0;
}