• $@ 要创建的文件的名称。

    • $? 是被更改的对应文件名。

    在这个例子中,像 $(CC) $(CFLAGS) $? $(LDFLAGS) -o $@ 这样的操作行应该在行首输入一个制表符 (\t) ,否则 make 会报错。 其中的 $@ 代表 hello 同时 $? 或者 $@.cpp 则代表所有已修改源文件。

    同时默认规则中还有另外两个特殊的宏。他们分别是 -

    常见的隐式规则是用于构建 .cpp(源文件)之外的 .o(对象)文件。

    1. $(CC) $(CFLAGS) -c $<
    2. .cpp.o: