我试图基于自动生成的Makefile编译C库。编译必须添加标志“ --coverage”以计算代码覆盖率。
该命令有效
make CFLAGS=--coverage
但不是这个
CFLAGS=--coverage make
这很奇怪。知道为什么第二个无效吗?我在使用zsh的Mac终端上。
答案 0 :(得分:1)
这并不奇怪。我们不能肯定地说,因为您没有告诉我们您的Makefile中如何设置CFLAGS
,但是您可能会遇到这样的情况:
CFLAGS = -g -O2
命令行上的变量分配优先于makefile中的变量分配。但是makefile中的变量分配优先于从环境中导入的变量。
GNU make manual对此进行了描述。