code/
私はいくつかの.cpp
ファイルを含むというフォルダを持っていますが、それらはすべてそれらの.o
バージョンにコンパイルしてobject/
フォルダに入れる必要があります。正しい変数名の定義に問題があります...
まず、いくつかのパスを定義しました。
OBJPATH=object#All compiled .o files need to be placed here.
CODEPATH=code#All .cpp and .hpp header files reside here.
次に、CODEPATHからすべてのファイル名を抽出しようとします。
SRC=$(wildcard $(CODEPATH)/*.cpp)
そして、SRCはの線に沿った値を持ちますcode/A.cpp code/B.cpp code/C.cpp
。プレフィックスをcode
削除し、終了して、に置き換えます。これは$(OBJPATH)
、と評価されobject/
ます。私は最初にこれを試しました:
TMP=$(SRC:.cpp=.o)
OBJ=$(TMP:$(CODEPATH)=$(OBJPATH))
しかし、結局のところ、この$(var:a=b)
機能は変数の最後の文字列のみを置き換え、任意のポイントでは置き換えないため、これは機能しません。
プレフィックスを取り除く方法を見つけることができればcode/
、私の問題はなくなります。どうすればよいですか?