我有一个名为的文件夹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/
前缀的方法,我的问题就会消失,那我该怎么做呢?