制作:将所有扩展名更改为.o

时间:2015-11-25 21:25:09

标签: makefile gnu file-extension

我有一个makefile,并且我有一个名为SOURCES的数组。在这个数组中,有一个c文件,还有c ++文件。但是我想改变该数组中每个路径的扩展名,无论它是c还是c ++到.o。我怎么能这样做?我知道要将一个扩展名更改为另一个扩展名,我可以这样做:OBJECTS=$(SOURCES:.c=.o),但我也想为c ++文件执行此操作。

2 个答案:

答案 0 :(得分:4)

有两种不同的选择。

使用$(filter) / $(filter-out)并进行两次替换:

//This is now a named function
function clickEventHandler(e){
    //select another element and remove a child in it
    $('.author-remove-group').last().prev('.form-group').remove();
    //select previous element and remove the last element in it
    $('.author-remove-group').last().remove();
    //random if statement that has nothing to do with the JQuery code
    if (num != 2){
        num--;
    }
}
//Select element with id
$('#RemoveLastAuthor').click(clickEventHandler(e));

或者,如果您知道git rm --cached db/*.sqlite3 中只有OBJECTS := $(filter %.o,$(SOURCES:.c=.o)) OBJECTS += $(filter %.o,$(SOURCES:.cpp=.o)) .c个文件(或希望支持.cpp中的其他扩展程序转换为SOURCES })您可以使用$(basename)$(addsuffix)

SOURCES

答案 1 :(得分:0)

只需使用此:

OBJECTS = $(来源:.cpp =。o)

对于文件扩展名.cpp

https://www.gnu.org/software/make/manual/html_node/Text-Functions.html#Text-Functions