命令CFLAGS = ... make“不起作用

时间:2020-11-12 14:57:11

标签: shell makefile

我试图基于自动生成的Makefile编译C库。编译必须添加标志“ --coverage”以计算代码覆盖率。

该命令有效

make CFLAGS=--coverage

但不是这个

CFLAGS=--coverage make

这很奇怪。知道为什么第二个无效吗?我在使用zsh的Mac终端上。

1 个答案:

答案 0 :(得分:1)

这并不奇怪。我们不能肯定地说,因为您没有告诉我们您的Makefile中如何设置CFLAGS,但是您可能会遇到这样的情况:

CFLAGS = -g -O2

命令行上的变量分配优先于makefile中的变量分配。但是makefile中的变量分配优先于从环境中导入的变量。

GNU make manual对此进行了描述。