Ubuntuの objective-c でHello world
Ubuntuの objecti-c でHello world
[環境]
Ubuntu Jaunty Jackalope 9.04 on VirtualBox 3.0.2
インストールするもの
build-essential gobjc libgnustep-base-dev
[したこと]
(1)インストール
$ sudo aptitude install gobjc libgnustep-base-dev
(2)ソースコードを書く
$ vi Hello.h
#ifndef HELLO_H_ #define HELLO_H_ #import <Foundation/NSObject.h> #import <Foundation/NSString.h> @interface CHello :NSObject { @private NSString *m_message; } - (id) init:(const char *) message_; - (void) dealloc; - (NSString *) getMessage; @end #endif /*HELLO_H_*/
$ vi Hello.m
#import "Hello.h" @implementation CHello - (id) init:(const char *) message_ { m_message = [[NSString alloc] initWithCString:message_ encoding:NSUTF8StringEncoding]; return (self); } - (void) dealloc { [m_message release]; [super dealloc]; } - (NSString *) getMessage { return (m_message); } @end
$ vi main.m
#import <stdio.h> #import <Foundation/NSAutoreleasePool.h> #import "Hello.h" int main(int argc, char *argv[]) { NSAutoreleasePool *pool; id hello; pool = [[NSAutoreleasePool alloc] init]; hello = [[CHello alloc] init:"hello, world"]; printf("%s\n", [[hello getMessage] cStringUsingEncoding:NSUTF8StringEncoding]); [hello dealloc]; return (0); }
$ vi Makefile
CC = gcc CFLAGS = -Wall -g -I/usr/include/GNUstep/ LDFLAGS = -lobjc -lgnustep-base LD = gcc HELLO = hello SRCS = main.m Hello.m HEADS = $(SRCS:.m=.h) OBJS = $(SRCS:.m=.o) all: $(HELLO) clean: $(RM) $(RMFLAGS) $(OBJS) $(HELLO) $(HELLO): $(OBJS) $(CC) $(LDFLAGS) -o $(HELLO) $(OBJS) .SUFFIXES:.o .m .m.o: $(CC) -c $(CFLAGS) $<
以下3行の次ぎにくる行は、左側をタブで1つぶん、開ける
clean:
$(HELLO): $(OBJS)
.m.o:
(3)コンパイル
$ make
(4)実行
$ ./hello
[参考]
Ubuntu 9.04でObjective-Cを試してみる - メモ帳
http://d.hatena.ne.jp/mtanaka/20090611/p1