0

我正在尝试监视 Makefile 项目的覆盖率。

CFLAGS=" -fprofile-arcs -ftest-coverage -g" make test

但是上面的命令似乎不起作用,产生以下内容:

gcc -DHAVE_CONFIG_H -I. -I..  -I..   -g -O2 -MT test.o -MD -MP -MF .deps/test.Tpo -c -o test.o test.c
mv -f .deps/test.Tpo .deps/test.Po
/bin/bash ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I..  -I..   -g -O2 -MT gaussian.lo -MD -MP -MF .deps/gaussian.Tpo -c -o gaussian.lo gaussian.c

从第一行可以看出,调用gcc时CFLAGS并没有很好的添加。如何在启动“make”时将 cflags 包含在 gcc 的构建选项中?

我在 Ubuntu 14 上使用 Bash,如果这很重要的话。

4

1 回答 1

1

从环境中获得的变量,这就是您的操作方式,其优先级低于在 makefile 中设置的变量。因此,如果您的 makefileCFLAGS直接设置变量,例如:

CFLAGS = -g -O2

然后在环境中设置它不会覆盖此设置。

您可以改为将变量分配添加到命令行:这些分配优先于 makefile 中设置的几乎所有内容。所以使用:

make test CFLAGS=" -fprofile-arcs -ftest-coverage -g"

反而。

https://www.gnu.org/software/make/manual/html_node/Values.html

于 2019-11-05T13:02:15.740 回答