Xcode4の使い方メモ 〜 コマンドラインアプリ & コンパイルオプションなど
いろいろ触ってみた順にメモしています。
前回と若干重複していますが、C++コマンドラインアプリを作成する手順です。
プロジェクト作成
File>New>New Projectでプロジェクト名"sample"とパス指定して追加(TypeはC++を選択しておく)
するとデフォルトでは以下のような構成になっています。
/
/
プロジェクトファイル(.xcodeproj)が存在するパスを
ソースファイルの追加
File>New>New File, 追加したいファイルとパスを選択して"Add"
例えばデフォルトのパスにヘッダ"Sample.h"を追加してみます。→/
ソースファイルの削除
削除したいファイルを選択してdelete, ファイルを残したいのでRemove Reference Onlyを選択、完全に消す場合はdelete
Finderからソースファイルを追加する
Navigatorにドラッグドロップ>create groups for any added folfers, Add to Targetsにチェックを入れる>"Finish"
インクルードパスの追加
準備
プロジェクトを最初の状態にもどします。
例えば"Sample.h"を先ほどと別のディレクトリに作成してみます。→/
さらにmain.cppでこのヘッダをインクルードさせておきます。
#include "Sample.h" #include <iostream> int main (int argc, const char * argv[]){ std::cout << "hello" << std::endl; return 0; }
ここでビルドすると、インクルードパスが指定されていなくてビルドが通りません。
Lexical or Preprocessor issue "Sample.h" not found
Search Paths設定
TARGETS>ターゲットを選択"sample">Build Settings>Search Paths>Header Search Paths
縦列の各項目で設定が反映されるレベルを調整できます。
左から、Resolved,ターゲット名"sample", プロジェクト名"sample", MacOSDefault
今回はターゲットごとに指定したいので, ターゲット名の項目をクリック>"+">
ここにインクルードパス"./include"を指定する(相対パスを入れる場合は/
"include"内を再起的に検索する場合はRecursiveにチェックを入れる>"Done"
以上で正常にビルドができます。
実行ファイル
実行ファイル(Unix Executable File)はデフォルトで以下の場所に作成されています。
/Users/
デフォルトではReleaseは作成されていないので手動で設定します
Releaseビルド設定
PROJECT>"sample">Build Settings>Build Archive Archtecture Only>Release
プロジェクト名"sample"の項目を"Yes"に変更
ビルドすると/Users/
内に実行ファイルが作成されていることが確認できます。
ここで一旦Cleanしておきます。
gccオプション追加
TARGETS>Build Settings>Other C++ Flags で直接コンパイルオプションを指定することができます。
例えばユーザー定義プリプロセッサをオプションに指定してみます。
自前プリプロセッサの追加
TARGETS>Build Settings>Other C++ Flags>"+">"-DTARGET_LINUX"
試しにmain.cppを以下のように修正してビルドしてみます。
int main (int argc, const char * argv[]){ std::cout << "common" << std::endl; #ifdef TARGET_LINUX std::cout << "linux only" << std::endl; #endif return 0; }
コンソールに2行とも出力されれば成功です。
common linux only