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 更改以在不同格式的文件之间进行选择的主要内容,如果未能解决你的问题,请参考以下文章