Makefile:如何向基础名称添加前缀?

54
我有一个文件路径列表,如下所示:
FILE_PATH := a1.so a2.so bla/a3.so bla/a3.so bla/blo/a4.so....

我需要在文件名前面添加一个前缀,以便获得:

FILE_PATH_PREFIXED := liba1.so liba2.so bla/liba3.so bla/liba3.so bla/blo/liba4.so....

有什么想法吗?

1个回答

103

看看Make的addsuffix函数。

Here is an example we use with `addsuffix` to place obj files one directory below
the source.


SOURCE += MainThread.cpp
SOURCE += Blah.cpp

OBJ=$(join $(addsuffix ../obj/, $(dir $(SOURCE))), $(notdir $(SOURCE:.cpp=.o)))

根据手册

$(addprefix prefix,names...)

参数names被视为一系列由空格分隔的名称;prefix用作单元。将prefix的值添加到每个单独的名称前面,然后将生成的更大名称以单个空格连接起来。例如,

$(addprefix src/,foo bar)

会生成结果src/foo src/bar


2
啊谢谢!我知道addprefix / addsuffix函数,但我缺少join函数... - dm76
1
我同意dm76的评估,确实这个很好的答案的关键价值在于join()函数。 - John McGehee

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接