更改文件以在不同格式的文件之间进行选择

问题描述 投票:0回答:1

我目前在我的项目中具有.c和.cpp文件格式的文件。我想自动在Makefile中生成目标文件,以根据文件的可用性动态选择.c或.cpp文件。

当前,

obj/%.o : %.cpp
    $(CXX) $(MKDEPEND) -c -o $@ $(CFLAGS) $(INCDIRS) $<

样本解决方案

obj/%.o : %.cpp (OR) %.c
    $(CXX) $(MKDEPEND) -c -o $@ $(CFLAGS) $(INCDIRS) $<

对此有什么解决方案?谢谢。

c++ c makefile
1个回答
2
投票

只需制定两个不同的规则。无论如何,您都不想使用相同的配方(您不想使用C ++编译器来编译C代码)。

obj/%.o : %.cpp
        $(CXX) $(MKDEPEND) -c -o $@ $(CXXFLAGS) $(INCDIRS) $<

obj/%.o : %.c
        $(CC) $(MKDEPEND) -c -o $@ $(CFLAGS) $(INCDIRS) $<

[Make将尝试同时匹配这两个规则,并使用其中一个匹配项,而忽略其他匹配项。

© www.soinside.com 2019 - 2024. All rights reserved.