ubuntuソフトウェア

Objective-CをDebian/Ubuntuで使う

Objective-Cに慣れるためにDebian/Ubuntu環境にObjective-CとGNUstepをセットアップしました。
gccは、Objective-Cをしていますが、NSで始まるクラスライブラリが使えないと話になりません。
Debian/Ubuntu環境には、aptパッケージが準備されているのでセットアップも簡単です。

セットアップ

ランタイムのgnustepと開発のためのgnustep-develパッケージをインストールします。

$ sudo apt-get install gnustep
$ sudo apt-get install gnustep-devel

サンプルソースとMakefile

下記のようなサンプルを書きます。

$ cat hello.m
#import <Foundation/Foundation.h>
int main(int argc, const char *argv[])
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSLog(@"Hello, World!!");
[pool drain];
return 0;
}
$ 

Makefileは、次の通りです。

$ cat Makefile
CFLAGS=$(shell gnustep-config --objc-flags) -lgnustep-base
hello: hello.m
gcc $(CFLAGS) $^ -o $@
clean:
@rm -rf hello
$

Makefile中のgnustep-configコマンドは、gnustep-develパッケージに含まれる環境に合ったコンパイルフラグを返してくれる便利なコマンドです。

コンパイル

makeコマンドを実行するとgccが呼び出されてコンパイルをします。

$ make
gcc -MMD -MP -DGNUSTEP -DGNUSTEP_BASE_LIBRARY=1 -DGNU_GUI_LIBRARY=1 -DGNU_RUNTIME=1 -DGNUSTEP_BASE_LIBRARY=1 -D_REENTRANT -fPIC -Wall -DGSWARN -DGSDIAGNOSE -Wno-import -g -O2 -fno-strict-aliasing -fexceptions -fobjc-exceptions -D_NATIVE_OBJC_EXCEPTIONS -fgnu-runtime -fconstant-string-class=NSConstantString -I. -I/home/ksaito/GNUstep/Library/Headers -I/usr/local/include/GNUstep -I/usr/include/GNUstep -lgnustep-base hello.m -o hello
$ 

実行

出来上がったhelloコマンドを実行すると、初めてのObjective-Cプログラミング完成です。

$ ./hello
2011-02-15 00:42:42.137 hello[10298] Hello, World!!
$ 
タイトルとURLをコピーしました