【问题标题】:CFLAGS variation for modules in makefilemakefile 中模块的 CFLAGS 变体
【发布时间】:2016-03-22 14:24:34
【问题描述】:

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

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

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

【问题讨论】:

    标签: makefile gnu cflags


    【解决方案1】:

    您可以使用target-specific variables 进行操作。

    正确的语法是:

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

    这些是您需要添加的行。

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

    【讨论】:

    • 由于某种原因这不起作用,我不确定如何调试它。有没有其他方法可以获取当前正在构建的文件,然后在其上应用 CFLAGS?
    • @user131274 尝试make -dmake -p
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-29
    • 1970-01-01
    相关资源
    最近更新 更多