Home > Tags > Objective-C
Objective-C
[Ubuntu]Ubuntu8.10へObjective-C環境をインストールしてみた。[Objective-C]
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>
- Comments: 1
- Trackbacks: 0
Home > Tags > Objective-C
- Search
- Feeds
- Meta