LoginSignup
24
21

Xcode4.6.xでMakefileを使ってビルド・デバッグするには

Last updated at Posted at 2013-08-07

はじめに

プロジェクトの都合で、ビルドシステムに化石のようなMakeを使わなければならない場合もあるかと思います。でも、自分のマシンではXcodeで開発したいんだ! という人もいるでしょ? でしょ?
そんな人のためのセットアップドキュメントです。

筆者の検証環境

・Xcode4.6.3
・GNU Make 3.81

まずはXcodeプロジェクトを作りましょう。

まずは、Xcodeプロジェクトを作りましょう。
メニューのFile->New->Project...を選択し、出てきたダイアログでCommand Line Toolを選択し、Nextボタンを押します。
スクリーンショット 2013-08-07 11.32.34.jpg

次の画面で、Project Nameを適当に入力します。ここでは「PracticeMakefile」としました。
TypeCでもC++でもどちらでもいいですが、ここではCにします。
スクリーンショット 2013-08-07 11.35.25.jpg

Nextボタンを押します。

次のファイル指定ダイアログで、プロジェクトの保存先を指定します。

こんな感じのプロジェクトができました。
スクリーンショット 2013-08-07 11.37.31.jpg

Make用のターゲットを追加する。

メニューのFile->New->Target...を選択し、OSX->Other->External Build Systemを選択し、Nextボタンをクリックします。
スクリーンショット 2013-08-07 11.43.17.jpg

次の画面で、Product Nameを適当に入力します。ここでは「Make」としました。Build Tool/usr/bin/makeとなっていることを確認してください。
スクリーンショット 2013-08-07 11.44.19.jpg
Finishボタンを押します。

Makefileを作成・追加する。

今回は例ですので、以下のような超シンプルなMakefileを書いてみます。
(-gオプションを忘れないでください。これがないとデバッガ使えません)

all: main.c
	gcc -Wall -g -o main main.c

できたMakefileを、プロジェクトに追加します。
スクリーンショット 2013-08-07 11.46.08.jpg

一度、コマンドラインでmakeを実行する。

ここで一度、コマンドラインでmakeを実行します。この先の手順で、Xcodeで実行可能ファイルを指定する必要があり、実行可能ファイルの実体が必要なためです。

Makeスキーマの設定

ディレクトリの指定

プロジェクトウィンドウの左ペインから、プロジェクト「PracticeMakefile」を選択し、その右隣のペインでターゲット「Make」を選択します。そしてその右のペインのInfoタブをクリックすると、以下のような画面になります。ここで、Directoryのフィールドに$(PROJECT)と入力してください。あるいは、プロジェクトフォルダへのフルパスを入力してもかまいません。
スクリーンショット 2013-08-07 11.57.49.jpg

実行可能ファイルの指定

メニューのProduct->Scheme->Edit Schemeを選択し、出てきた画面で、上部のSchemeで「Make」を選びます。次に、左ペインのRun->Runを選択し、右側のペインでInfoタブを押します。
スクリーンショット 2013-08-07 11.51.35.jpg

ExcutableのNoneをクリックし、出てきたメニューでOther...をクリック、出てきた選択ダイアログで、先ほどmakeして作成した実行可能ファイル「main」を選びます。

スクリーンショット 2013-08-07 11.53.08.jpg

選択し終えたら、OKボタンを押します。

いよいよビルド、実行!

プロジェクトウィンドウ左上のRunボタンを押して、ビルド・実行してみましょう。成功するはずです。
ブレークポイントをしかければ、そこでちゃんと止まることも確認できます。
スクリーンショット 2013-08-07 19.48.57.jpg

Makefileのターゲットを指定するには

Makefileのターゲットが複数あったとして

hello: main.c
	gcc -Wall -O2 -g -o hello main.c
hello2: main.c
	gcc -Wall -O2 -g -o hello2 main.c

hello2を実行したい場合は、
プロジェクトウィンドウの左ペインから、プロジェクト「PracticeMakefile」を選択し、その右隣のペインでターゲット「Make」を選択します。そしてその右のペインのInfoタブをクリックすると、以下のような画面になります。ここで、Argumentsのフィールドにhello2と入力してください。
スクリーンショット 2013-08-07 18.35.27.jpg

これで、hello2のターゲットが実行されるようになります。

おわりに

いかがでしたでしょうか。プロジェクトが大きくなり、いずれ再帰的なMakefile構成になったとしても、多分このやり方でいけると思います。
Make+VimやMake+Emacsで十分という方もいらっしゃるかもしれませんが、やはりXcodeの豊富な開発支援機能の魅力は捨てがたいものがあります。
そこで、マカーな人ならMake+Xcodeというわけです。
ビルドシステムが古風な分、他はリッチな環境で行こうではありませんか。

24
21
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
24
21