1週間くらい前からObjective-Cを触り始めて見ました。Cすら一度も触ったことないから分からんことだらけですけど・・・
で、前は初代Macbookを持っていたんですけどThinkpadX61へ乗り換えと同時に手放してしまったので
X61上のUbuntu8.10でObjective-Cを学習しときます。
学習用に「詳解Objective-C2.0」という本を用意しました。この本を終えたら新しくMacbookを購入し直そうと思います。
iPhoneだって持ってないんですけどね・・・・
とりあえずいつも通り、Ubuntu8.10へのObjective-C環境のインストール方法をまとめておきます。
- いろいろとインストール。こんだけ入れると取り合えずObjective-Cの環境は整います。
sudo apt-get install build-essential gobjc gobjc-multilib libgnustep-base-dev gnustep gnustep-devel gnustep-dl2 doxygen
- ↑だけインストールするだけだとNSObjectが使えないので↓も行う。(Objective-C2.0本を進めていると、どうしてもNSObjectが必要だったので・・・つかNSObjectが使えないとretain、releaseとかが無い!)
・Foundationフレームワークを使えるようにパスが通るディレクトリへリンクを張る為に↓を作成。#!/bin/sh frompath=/usr/include/GNUstep topath=/usr/lib/gcc/i486-linux-gnu/4.3/include for i in "AppKit" "Cocoa" "Cynthiune" "DBKit" "EOAccess" "EOControl" "EOInterface" "EOModeler" "FSNode" "Foundation" "Frameworks" "GNUMail" "GNUstepBase" "GNUstepGUI" "GormCore" "GormObjCHeaderParser" "GormPrefs" "HighlighterKit" "Inspector" "InterfaceBuilder" "Operation" "PostgreSQLEOAdaptor" "ProjectCenter" "Renaissance" "TalkSoupBundles" "WizardKit" "gnustep" do ln -s $frompath/$i $topath done
リンク張っているのは/usr/include/GNUstep以下にある全てをリンクしてるだけです。勉強始めたばっかなんで各ファイルにどんな機能、役割があんのかは全くもって不明ですwww
で、作成したスクリプトファイルを実行。sudo sh /保存したスクリプトのパス/link_libobjc.sh
以上でUbuntu8.10へのObjective-C環境構築はおわりです。
これで「詳解Objective-C2.0」に載ってるソースそのままで動くと思います。(どっかで躓いたらまた記事修正しときます。)
最後に、Ubuntu8.10上でソースをコンパイルする時なんですが
gcc ソースファイル名 -o コンパイル後ファイル名 -lobjc -lgnustep-base
としてください。
あと、分からんというか面倒くさいというか、mainソースファイルから自前で作成したヘッダファイル(.hファイル)を読み込んでコンパイルするとき
gcc ソースファイル名 -o コンパイル後ファイル名 -lobc -lgnustep-base -include ヘッダファイル名1 -include ヘッダファイル名2
みたいにしないとコンパイル出来んのですが、複数のヘッダファイルを読み込むとき、「-include ヘッダファイル名」を何度も書くのは面倒くさいですな・・・なんか良い方法あるんですかねぇ?
2009/02/17 追記
Tomuteさんコメントありがとうございます。助かりました。
詳解Objective-C2.0を読み進めていると、Tomuteさんのブログにも書いてるようにコンパイル時に
error: cannot find interface declaration for ‘NXConstantString
とエラー返してくるので、コンパイルオプションに”-fconstant-string-class=NSConstantString”を追加しないとダメみたいです。またTomuteさんに教えてもらった-Iオプションも追加。
gcc ソースファイル名1 ソースファイル名2 ソースファイル名3 -o コンパイル後ファイル名 -lobjc -lgnustep-base -I/指定ディレクトリ -fconstant-string-class=NSConstantString
こんな風にするみたいです。
< 参考にしたサイト: Tomute’s Notes [Linux] Ubuntu LinuxでObjective-C>
- Newer: [チャリンコ]Kuota Kharma カルマっていうロードバイクをポチッちゃったwktk
- Older: [CakePHP]CakePHP1.2のfind時にDBカラムを型変換して検索条件にする方法。
Comments:1
- tomute 09-02-07 (土) 1:57
-
gccの-Iオプション(大文字のiです)を使って、自前で作成したヘッダファイルを保存しているディレクトリを指定すると、-includeを何回も指定しなくても良い気がします(ヘッダファイルは一つのディレクトリに纏めておく必要はありますが)。
Trackbacks:0
- Trackback URL for this entry
- http://ore.saizensen.net/archives/200/trackback
- Listed below are links to weblogs that reference
- [Ubuntu]Ubuntu8.10へObjective-C環境をインストールしてみた。[Objective-C] from おれ最前線ねっと




