Makefile Make:将所有扩展名更改为.o
我有一个makefile,其中有一个名为Makefile Make:将所有扩展名更改为.o,makefile,gnu,file-extension,Makefile,Gnu,File Extension,我有一个makefile,其中有一个名为SOURCES的数组。在这个数组中,有一个C文件,并且有C++文件。但是,我想改变数组中的每个路径的扩展,无论是C还是C++到 .O/COD>。我怎么能这样做?我知道为了将一个扩展名改为另一个扩展名,我可以这样做:对象= $(源:.c= .o),但是我也希望为C++文件这样做。 < P>有几种不同的选项。 使用/并进行两次替换: OBJECTS := $(filter %.o,$(SOURCES:.c=.o)) OBJECTS += $(filter %.
SOURCES
的数组。在这个数组中,有一个C文件,并且有C++文件。但是,我想改变数组中的每个路径的扩展,无论是C还是C++到<代码> .O/COD>。我怎么能这样做?我知道为了将一个扩展名改为另一个扩展名,我可以这样做:<代码>对象= $(源:.c= .o),但是我也希望为C++文件这样做。 < P>有几种不同的选项。
使用/并进行两次替换:
OBJECTS := $(filter %.o,$(SOURCES:.c=.o))
OBJECTS += $(filter %.o,$(SOURCES:.cpp=.o))
或者,如果您知道源文件中只有.c
和.cpp
文件(或者希望支持源文件中的其他扩展名转换为.o
),您可以使用和:
只要用这个:
OBJECTS=$(来源:.cpp
=.o)
对于文件扩展名.cpp
OBJECTS := $(addsuffix .o,$(basename $(SOURCES))