2016-04-08 4 views
-1

ソースとヘッダのために別々のフォルダを持つMakefileをビルドしようとしています。私は自分の.hppファイルを保持するインクルードフォルダと私の.cppファイルを保持するソースフォルダを含むプロジェクトのルートを持っています。それぞれの.hppファイルですべての.cppをビルドするMakefileをビルドする方法はありますか?ソースとヘッダを別々のフォルダに作るmakefile

buildという名前のフォルダにプログラム出力を作成するには?

は、事前にありがとう

答えて

1

メイクはこれを実行する方法はたくさんありますので、多様であるが、最終結果は-I<your hpp path>ある(または-J)が、それは追加のパスを含める伝えるためにコンパイラに渡される必要があります解決するときに検索するには#include

パスは、ルールディレクトリの呼び出しに対して相対的である必要があります(ファイルがコンパイルされていると確信しています)。

makefileの多くは、CまたはCPPコンパイラに余分なオプションを渡すために、makefile内のCPPOPTSとCCOPTSまたはその変形を使用しています。追加してみてください:あなたのメイクファイルへ

CPPOPTS += -I..\include 

を(あなたがソースを分離し、そのようにファイルをインクルードしましたと仮定した場合)。

この場合も、これはすべてあなたのメイクファイルに依存します。

+0

Googleは、「CPPOPTS」に1590ヒット、「CPPFLAGS」に360000ヒットを提供します。相対的には、多くのメイクファイルでは 'CPPOPTS'を使用していません。 –

0

私はソースと私のヘッダーのために別々のフォルダでMakefileをビルドしようとしています。

代替方法として、.cppファイルと同じディレクトリにヘッダーを置くこともできます。その最上位のインクルードフォルダには、ヘッダへのシンボリックリンクを置くことができます。

+0

私は、このソリューションはシンボリックリンクのためにほとんどのリビジョン管理システムに追加することができないと思うので、私はそれをお勧めしません。しかし、私がやった非常にハックアップしたことは、既知の相対パスを使ってローカルではない実際のものだけを含むローカルの.hファイルを追加することです。まれに、すでに存在するmakefileを邪魔することなく、2つのプロジェクト間でソース/ヘッダーを共有する必要があったのです。再び、私はそれをお勧めしません。 '-I'または' -J'を使う –

関連する問題