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環境のインストール方法をまとめておきます。

  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>

Home > Tags > Objective-C

Search
Feeds
Meta

Return to page top