やらなきゃやらなきゃと思っていたobjectiveCに取り掛かりました。 なかなか面白い言語のようですね、
xcodeのプロジェクトでやるとおまじないが多いので、とりあえずコマンドライン+コンパイラでhello worldします
cのコンパイラであるgccが使えるそうで。
#import<stdio.h> #import<objc/Object.h> @interface Test:Object -(void)hello; @end @implementation Test -(void)hello{ printf("hello world\n"); } @end int main(){ id obj = [Test alloc]; [obj hello]; return 0; }
と書いてgccを実行
コンパイルエラー
error: cannot find interface declaration for 'Object', superclass of 'Test'
Objectがないと、
調べてみたら、64bitでのObjectは提供していないとかなんとか…
ではNSObjectで使用
#import<stdio.h> #import<Foundation/NSObject.h> @interface Test:NSObject -(void)hello; @end @implementation Test -(void)hello{ printf("hello world\n"); } @end int main(){ id obj = [Test alloc]; [obj hello]; return 0; }
もっと謎のエラーが出ましたがそもそもフレームワークを使用しているからそれをオプションで明示するらしい
というわけで以下で実行
$ gcc -o hello hello.m -framework Foundation $ ./hello hello world
成功