2012-03-06 13 views
1

Xcodeでアルゴリズムを実装しているプロジェクトを1つのC++ファイルで作成しました。コンパイルするには、別のディレクトリのlibgambitというディレクトリにあるライブラリが必要です。ディレクトリ構造は次のようになります。ライブラリを使ったMakefile

lib/ 
    libgambit/libgambit.cc 
      libgambit.h 
      game.cc 
      game.h 
      ... 
src/Game\ Theoretic\ Analysis/convertion.cc 
           convertion.h 
           Makefile 

だから私は必要なもの最初libgambitでいただきましたすべてのものを構築し、convertion.ccを構築し、リンクすることから生じるオブジェクトファイルを使用するメイクファイルです。実行ファイルは、メイクファイルと同じフォルダになければなりません。

これはかなり簡単な質問のようですが、今は2日間苦しんでいます。

+0

これまでに何がありますか? – Geoffroy

答えて

0

開発されたメイクファイルhereを使用できます。 Makefileを変更することなく、新しいファイルやディレクトリをビルドに追加することができます。

1

複数の方法があります。ここでは、粗しかし、効果的な方法である:(あなたは、ヘッダファイルを変更するいくつかのオブジェクトを再構築しなければならないことを気付くことはありません確認した場合)これは非常によく依存関係を追跡することはありません

LIBSRCS := $(wildcard $(PATHTOLIB)/lib/libgambit/*.cc) 
LIBOBJS := $(LIBSRCS:.cc=.o) 

convertion: convertion.o $(LIBOBJS) 
    @g++ -Wall $^ -o [email protected] 

%.o: %.cc 
    @g++ -Wall -Ilib/libgambit -c $< -o [email protected] 

が、それは今のところ十分です。高度な依存関係処理を試したいかどうかをお知らせください。

+0

私はまだそこにいません。自動化されたmakefileを生成できるツールはありますか? –

+0

@Jeroen:はい、 'automake'ですが、まだその方向に進まないことをお勧めします。もっと教えていただければ、基本的なmakefileを手に入れることができるかもしれません。これを試してみるとどうなりますか? – Beta

関連する問題