Ubuntu LinuxでObjective-C

Ubuntu Linux 8.04でObjective-Cのプログラミングが出来るようにする方法。


1. build-essentialのインストール
 Ubuntu 8.04はデフォルトでgccはインストールされているものの、libc6-devが入っていないため、build-essentialをインストールする。

sudo apt-get install build-essential


2. Objective-C用のライブラリをインストール

sudo apt-get install gobjc


以上でObjective-Cのプログラミングが出来るようになる。


【追記】
上記だけでは、例えばNSObjectクラスを利用するために、ヘッダファイルFoundation/NSObject.hをimportしてコンパイルすると"error: Foundation/NSObject.h: No such file or directory"というようなエラーが出てしまう。これを解決するためには、libgnustep-base-devをインストールする必要がある。
なお、他にも以下のようなパッケージをインストールした。

sudo apt-get install libgnustep-base-dev
sudo apt-get install gnustep
sudo apt-get install gnustep-devel

そして以下のようにgccコマンドを実行する事でコンパイル出来る。

gcc test.m -lobjc -lgnustep-base -I/usr/include/GNUstep


【更に追記】
上記だけだと"error: cannot find interface declaration for NXConstantString"というようなエラーが出てしまう。で、以下のようにすると解決出来た(解決出来た理由がハッキリしないので要調査)。

gcc test.m -lobjc -lgnustep-base -I/usr/include/GNUstep
   -fconstant-string-class=NSConstantString


【更に更に追記】
ビルドして出来た実行ファイルを実行すると、以下のような警告メッセージが出た。

autorelease called without pool for object (80871e8) of class
GSAutoreleasedMemory in thread 

上記の警告はメイン関数の先頭に以下の記述を入れることで消えた。

NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];


参考サイト: