なんちゅうタイトル。。。雰囲気は伝わるかと。
最近、osx10.5.6でartoolkit、opengl、opencvで遊ぶ機会がありました。いずれもmakefileを利用したc(c++)言語開発です。ターミナルを開いて慣れたviで遊んでいました。
makefileもついているので、makeコマンドでビルドすることもできるのですが、xcodeでも開発できるってことは。。。ふつうのc(c++)のソースパッケージをxcodeに対応させることができるんだな。。。と思った訳です*1。
で、探してみると、こちらがヒットしました。エントリーに従って試してみるとできるんですね。。。これが。
再掲になりますが、ソースの追加の仕方やデバッガで躓いたので、まとめてみたいと思います。
- opengl入門のページからmakefileとC言語のファイルを1つずつ借りてきて用意します。こちらのページからちょうだいしました。以下のリンク(右クリでファイル保存)から入手してください。この2つのファイルを適当なディレクトリに入れます。ここでは/Users/あなたのユーザ名/src/openglに入れました。
- xcodeのメニューから「ファイル」ー「新規プロジェクト」を選びます。以下のウィンドウが表示されます。ここで「Other」ー「Empty Project」を選択して選択ボタンを押します。
- 上のが面で選択ボタンを押すと以下のようなウィンドウが表示されます。名前にopenglと入れました。保存先は/Users/あなたのユーザ名/src/xcodeとしました。保存ボタンを押すと/Users/あなたのユーザ名/src/xcode/openglが自動的に作成されます。*2
- 次にターゲットというものを追加します。操作はターゲットアイコンの上で右クリして「追加」ー「新規ターゲット」を選択します。
- 以下のウィンドウで「Other」ー「External Target」を選択し次へボタンを押します。
- 以下のウィンドウでターゲット名「test」と入力し完了ボタンをします。
- 以上の入力が終わると以下のような画面になります。ここで画面右下のディレクトリと書かれた入力欄にmakefileがあるディレクトリへのパス名を入力します。操作方法はディレクトリ入力欄の右にある選択ボタンを押し、ディレクトリを選択します。このディレクトリに対してmakeコマンドが実行されます。したがって、ここで指定したディレクトリの中にMakefileが存在している必要があります。
- 次にターゲットを追加したのと同じ要領で、実行ファイルを追加します。操作は以下のように実行可能ファイルアイコンの上で右クリックし「追加」ー「新規カスタム実行可能ファイル」を選択します。
- 実行可能ファイル名にtestと入力します。実行可能ファイルへのパスも指定します。操作は選択ボタンを押して実行可能ファイルを選択します。ここで実行可能ファイルが存在していないと選択できませんので、ターミナルでmakeコマンドを実行してtest.cをコンパイルし、実行可能ファイルtestを作成しておきます。もしこの操作が面倒(わからない)なら実行可能ファイルのパス名を手で入力すればいいと思います。
- 上の画面で完了ボタンを押すと以下のようなウィンドウが表示されます。これはそのまま閉じてください。
- で、プログミングにはデバッグがつきものです。ということでこのtestに関連するソースプログラムをこのプロジェクトに登録します。方法はいたって簡単です。Finderでソースプログラムが格納されたディレクトリ(ここでは/User/ユーザ名/src/opengl)を選択して、xcodeのグループとファイルの最上段にあるopenglアイコンにドラッグ&ドロップするだけです。すると以下のようなウィンドウが表示されます。
- Makefileやtest.cは既にWindows-31JからUTF-8に変換済みですので、このまま追加ボタンを押します。以下のようになりますが、Makefileや実行ファイルであるtestはソースプログラムではありませんので選択して削除します。
- で、実はここで「ブレークポイントを設定したのに止まらない現象」に数日悩まされました。解決策はこちらにありました。メニューから「Xcode」ー「環境設定」を選択すると以下のウィンドウが表示されます。ここでシンボルの遅延読み込みがチェックされていますが、このチェックを外すと止まるようになりました。なぜかはわかりませんが。。。
説明が長くなりましたが、とりあえずインターネットリソースだけでは不足するところをできる限り載せてみました。デバッガもつかえるしエディタも普通だしオープンソースプロジェクトを持ってきてXcodeで開発するのはありなんじゃないでしょうかね?
ちなみにC言語開発の例でしたが、ビルドコマンドを実行できるタイプのプロジェクトであれば同じようなやり方が通用するはずです。
少し調べてみるとRails開発もxcodeでできるようです。makeの代わりにrakeを使うだけですからね。詳細はこちらで詳しく説明されています。