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

Posted

技术标签:

【中文标题】Makefile 更改以在不同格式的文件之间进行选择【英文标题】:Makefile change to select between files of different format 【发布时间】:2020-04-08 16:35:15 【问题描述】:

我的项目中目前有 .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) $<

有什么解决办法吗?谢谢。

【问题讨论】:

【参考方案1】:

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

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

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

Make 将尝试匹配这两个规则并使用匹配的任何一个,而忽略其他规则。

【讨论】:

以上是关于Makefile 更改以在不同格式的文件之间进行选择的主要内容,如果未能解决你的问题,请参考以下文章

Makefile使用

设置日历单元格格式以在添加事件时更改颜色

第08章上 makefile

Makefile和gdb的简单使用

Shell脚本——make命令和Makefile文件

用于在头文件更改时构建简单 c 项目重新编译的示例 makefile