1
を使用して一つのルールで複数の種類のファイルをコンパイルします。 %.o:%.cpp行を展開して、* .cppファイルと* .ccファイルを1行で処理する可能性はありますか?私は次のようなものを期待しています:%.o:%.cpp%.cc。は、私は、次のメイクファイルを持っていると仮定しましょうメイク
多くのおかげで、 Toreno
を使用して一つのルールで複数の種類のファイルをコンパイルします。 %.o:%.cpp行を展開して、* .cppファイルと* .ccファイルを1行で処理する可能性はありますか?私は次のようなものを期待しています:%.o:%.cpp%.cc。は、私は、次のメイクファイルを持っていると仮定しましょうメイク
多くのおかげで、 Toreno
あなたは本当にただmakeの組み込みルールを再発明していますが、組み込みは、上記
CCFILES := $(wildcard *.cc)
CPPFILES := $(wildcard *.cpp)
.PHONY: all
all: $(CCFILES:.cc=.o) $(CPPFILES:.cpp=.o)
に短縮することが可能規則に次は
CCFILES := $(wildcard *.cc)
CPPFILES := $(wildcard *.cpp)
CCOBJFILES := $(CCFILES:.cc=.o)
CPPOBJFILES := $(CPPFILES:.cpp=.o)
OBJFILES := $(CCOBJFILES) $(CPPOBJFILES)
.PHONY: all
all: $(OBJFILES)
$(CCOBJFILES): %.o: %.cc
$(CPPOBJFILES): %.o: %.cpp
$(OBJFILES):
$(CXX) -c $< -o [email protected]
を動作するはずです
パーフェクト!これはまさに私が探していたものです。さらに、私は組み込みルールについては知らなかったのですが、今はさらにスマートでシンプルです! –
.ccファイルと.cppファイルの両方をコンパイルするのに同じコンパイラ/コマンドラインを使用しますか? –
はい、まったく同じです。 –
すべての.ccファイルの名前を.cppに変更する方法はありますか? –