Makefile中有一个隐式规则,用于C ++文件,使用.C或.cc扩展名。但我通常有C ++源代码的.cpp文件扩展名。
如何使用.cpp文件的Makefile的隐式规则?
答案 0 :(得分:4)
请参阅Catalogue of Implicit Rules:
编译C ++程序
n.o是从n.cc,n.cpp或n.C自动生成的,其配方形式为'$(CXX)$(CPPFLAGS)$(CXXFLAGS)-c'。我们建议您对C ++源文件使用后缀“.cc”而不是“.C”。
答案 1 :(得分:0)
在模式规则的先决条件中,'%'代表相同的词干 与目标中的'%'匹配。为了使模式规则 apply,其目标模式必须与正在考虑的文件名匹配 并且它的所有先决条件(在模式替换之后)必须命名 存在或可以制作的文件。这些文件成为先决条件 目标。因此,形式的规则
%.o : %.c ; recipe...
指定如何使用另一个文件n.c作为文件n.o 前提条件,前提是n.c存在或可以制作。
所以你可以尝试类似的东西
%.o : %.cpp %.hpp
$(CC) $(CFLAGS) $@