如何使用.cpp文件的Makefile隐式规则?

时间:2013-01-28 19:22:45

标签: c++ makefile

Makefile中有一个隐式规则,用于C ++文件,使用.C或.cc扩展名。但我通常有C ++源代码的.cpp文件扩展名。

如何使用.cpp文件的Makefile的隐式规则?

2 个答案:

答案 0 :(得分:4)

请参阅Catalogue of Implicit Rules

  

编译C ++程序

     

n.o是从n.cc,n.cpp或n.C自动生成的,其配方形式为'$(CXX)$(CPPFLAGS)$(CXXFLAGS)-c'。我们建议您对C ++源文件使用后缀“.cc”而不是“.C”。

答案 1 :(得分:0)

这是GNU make docs

  在模式规则的先决条件中,

'%'代表相同的词干   与目标中的'%'匹配。为了使模式规则   apply,其目标模式必须与正在考虑的文件名匹配   并且它的所有先决条件(在模式替换之后)必须命名   存在或可以制作的文件。这些文件成为先决条件   目标。因此,形式的规则

 %.o : %.c ; recipe...
     

指定如何使用另一个文件n.c作为文件n.o   前提条件,前提是n.c存在或可以制作。

所以你可以尝试类似的东西

%.o : %.cpp %.hpp
   $(CC) $(CFLAGS) $@