Home > Lang | Mac | Objective-C | UNIX | Ubuntu | iPhone > [Ubuntu]Ubuntu8.10へ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環境のインストール方法をまとめておきます。

  1. いろいろとインストール。こんだけ入れると取り合えずObjective-Cの環境は整います。
    sudo apt-get install build-essential gobjc gobjc-multilib libgnustep-base-dev gnustep gnustep-devel gnustep-dl2 doxygen
  2. ↑だけインストールするだけだと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

add to hatena hatena.comment (3) add to del.icio.us (0) add to livedoor.clip (0) add to Yahoo!Bookmark (0) Total: 3

tomute 09-02-07 (土) 1:57

gccの-Iオプション(大文字のiです)を使って、自前で作成したヘッダファイルを保存しているディレクトリを指定すると、-includeを何回も指定しなくても良い気がします(ヘッダファイルは一つのディレクトリに纏めておく必要はありますが)。

Comment Form
Remember personal info

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 おれ最前線ねっと

Home > Lang | Mac | Objective-C | UNIX | Ubuntu | iPhone > [Ubuntu]Ubuntu8.10へObjective-C環境をインストールしてみた。[Objective-C]

Search
Feeds
Meta

Return to page top