我正在使用大型固件,而且我只将GNU gprof添加到它的某些模块(文件目录)中。 makefile具有继承结构。所以我这样做:
ft/*.o : ft/*.c
CFLAGS += -pg
ft/*.o : ft/*.c
LDFLAGS += -pg
但是这给了我一个警告,它会覆盖CFLAGS,然后将gprof添加到所有模块中。我的猜测是CFLAG很常见。如何确保CFLAG仅适用于我想要的模块(目录)部分?
答案 0 :(得分:2)
您可以使用target-specific variables执行此操作。
正确的语法是:
ft/*.o : CFLAGS += -pg
ft/*.o : LDFLAGS += -pg
这些是您需要添加的行。
或者,您可以将这些标志添加到可执行文件,共享库和静态库中。目标特定变量传播到其先决条件,即包含二进制文件的.o
文件。