より良い環境を求めて このページをアンテナに追加 RSSフィード

2008-07-17

[][] CygwinObjective-Cコンパイルをするときのlobjcオプションはターゲットより後に指定する

メモ。

gcc -o hello -lobjc hello.m
Temp/cc4bpqIQ.o:hello.m:(.text+0x47): undefined reference to `_objc_get_class'
Temp/cc4bpqIQ.o:hello.m:(.text+0x59): undefined reference to `_objc_msg_lookup'
Temp/cc4bpqIQ.o:hello.m:(.text+0x7c): undefined reference to `_objc_msg_lookup'
Temp/cc4bpqIQ.o:hello.m:(.text+0xa5): undefined reference to `___objc_exec_class'
Temp/cc4bpqIQ.o:hello.m:(.data+0xe4): undefined reference to `___objc_class_name_Object'
collect2: ld returned 1 exit status

エラーでだいぶハマった。

gcc -o hello hello.m -lobjc

こうすれば大丈夫。

こんな縛りあったっけ?Debianだとオプションの順番でエラーになったりしない。


あとgccのmwindowsオプションとCreateWindowでウィンドウ生成も試した。

# 一度記事が消えたので簡単なメモだけ残しておくorz

2008-07-11

[] 現実逃避Objective-Cを入れる

etchの場合。

apt-cache search objective-c
apt-get install gobjc

emacsを暫定的に設定。

;; Objective-Cの設定(Objective-Cディレクトリ以下のみ)
(setq auto-mode-alist (cons '("/Objctive-C/*.[hm]" . objc-mode)
                            auto-mode-alist))

入門。

http://www.oklab.org/program/objective-c_linux.html


Gtk+も眺める。

http://www.gnome.gr.jp/docs/gtk+-2.0.x-tut/gtk-tut.html


あとはGtk+をラップするクラスを作ればObjective-CGUIプログラミングが出来る。


makefile

CFLAGS  += `pkg-config --cflags gtk+-2.0`
LDFLAGS += -lobjc `pkg-config --libs gtk+-2.0`

all: sampleGUI

%.o:    %.m
        $(CC) -c $(CFLAGS) $< -o $@