0

我正在开发一个大型固件,我必须将 GNU gprof 添加到它的一些模块(文件目录)中。makefile 具有继承的结构。所以我这样做:

ft/*.o : ft/*.c
       CFLAGS += -pg
ft/*.o : ft/*.c
       LDFLAGS += -pg

但这给了我一个警告,它会覆盖 CFLAGS,然后将 gprof 添加到所有模块中。我的猜测是 CFLAG 在某个地方很常见。如何确保 CFLAG 仅适用于我想要的模块(目录)部分?

4

1 回答 1

2

您可以使用特定于目标的变量来做到这一点。

正确的语法是:

ft/*.o : CFLAGS += -pg
ft/*.o : LDFLAGS += -pg

这些是您需要添加的行。

或者,您可以将这些标志添加到可执行文件、共享库和静态库中。目标特定变量传播到其先决条件,即.o包含二进制文件的文件。

于 2016-03-22T14:28:48.447 回答