4

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

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

4

2 回答 2

4

请参阅隐式规则目录

编译 C++ 程序

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

于 2013-01-28T20:54:18.200 回答
0

这是来自GNU make docs

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

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

指定如何制作一个文件no,以另一个文件nc为前提,前提是nc存在或可以制作。

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

%.o : %.cpp %.hpp
   $(CC) $(CFLAGS) $@
于 2013-01-28T22:01:07.493 回答