我正在编写一个Makefile,我有所有文件的列表(不带src/或.cpp),我想将它们转换为build/*.o。这是我已经尝试过的方法:
FILES=icxxabi list memory string
OBJECTS=$(echo ("${build/$$FILES[@].o}")[@])
Run Code Online (Sandbox Code Playgroud)
因此对于input a dir/b c,它应该输出:
build/a.o build/dir/b.o build/c.o
Run Code Online (Sandbox Code Playgroud)
小智 8
使用GNU Make,您可以尝试
OBJECTS=$(patsubst %, build/%.o, $(FILES))
Run Code Online (Sandbox Code Playgroud)
https://www.gnu.org/software/make/manual/html_node/File-Name-Functions.html#File-Name-Functions:
OBJECTS = $(addprefix build/,$(addsuffix .o,$(FILES)))
Run Code Online (Sandbox Code Playgroud)