3
我的Makefile有此规则/食谱:为什么gnu会忽略我的显式模式规则并使用内置的隐式规则呢?
%o: %cpp Makefile
g++ -Wall -Wextra -MMD -MP -O2 -c -o [email protected] $<
这工作得很好,直到我最近升级Cygwin和有让3.82.90(以前的版本可能是3.81)。
现在用做3.82,它忽略了我的规则,而是使用一个内置的规则编译每个文件,如:
g++ -c -o Foo.o Foo.cpp
您实际上可以使用内置的规则,而不是由规则之前定义'CPPFLAGS'和/或'CXXFLAGS'变量,因为如果你运行'使-np'你会发现,内置的规则定义了类似'$ {COMPILE.cc} -c -o $ @ $ <'的地方,其中'COMPILE.cc'被设置为'$ {CC} $ {CXXFLAGS} $ {CPPFLAGS}' - 如果它不同,那么它只会扩展这些,据我所知。 – 2013-07-02 08:53:16