同じメイクファイルを持つ2つの実行可能ファイルに組み込まれた2つの "メイン"ファイルに1つの "ヘルパー"ファイルが含まれています。私は、ヘルパーファイルにデバッグprintステートメントを持っています。 print文を実際には1つの実行可能ファイルに出力したいが、もう一方は出力できないようにする。それを行う方法はありますか?今、私は以下のことを持っていますが、DEBUG_PRINTを実行可能ファイルとして定義してコンパイルすることを望んでいましたが、他の実行可能ファイルは定義されていませんでした。異なるオプションの異なるターゲット用に同じファイルを構築する
main1.cpp:
#include "helper.h"
...
main2.cpp:
#include "helper.h"
...
helper.cpp:
#ifdef DEBUG_PRINT
cout << "here is a debug message" << endl;
#endif
のMakefile:
build: main1 main2
main1: main1.o helper.o
g++ -g -o main1 main1.o helper.o
main2: main2.o helper.o
g++ -g -o main2 main2.o helper.o
%.o: %.cpp
gcc -g -c $<
+1私は最初にMakefileを誤読しました。 '$(CXXFLAGS)helper.cpp'を' g ++ 'リンクコマンド(一種の汚れているようなもの)に移動させることとは別に、二つの異なるオブジェクトファイルを用意する方法はありません。 – user786653
ありがとう、それは働いた。 –