【问题标题】:makefile: how to add a prefix to the basename?makefile:如何为基本名称添加前缀?
【发布时间】:2010-11-22 07:11:27
【问题描述】:

我有一个这样的文件路径列表:

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....

有什么想法吗?

【问题讨论】:

    标签: makefile prefix


    【解决方案1】:

    看看 Make 的 addsufix 函数。

    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)))
    

    来自 manual:

    $(addprefix prefix,names...)

    参数名称被视为一系列名称,由 空白;前缀用作一个单位。前缀的值为 在每个人的名字前面加上结果 较大的名称用它们之间的单个空格连接。为了 例如,

    $(addprefix src/,foo bar)
    

    产生结果src/foo src/bar

    【讨论】:

    • 啊,谢谢!我知道 addprefix/addsuffix 函数,但我错过了 join 函数...
    • 我同意 dm76 的评估,即这个好答案的关键值确实是 join()。
    猜你喜欢
    • 2012-06-18
    • 2012-04-26
    • 1970-01-01
    • 2014-09-29
    • 2013-01-30
    • 2016-03-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多