在命令行中将CFLAGS传递给Makefile

我正在尝试监视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”时,如何在gcc的生成选项中包含cflags?

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

kyo0616 回答:在命令行中将CFLAGS传递给Makefile

从环境中获取的变量(您的操作方式)的优先级低于在makefile中设置的变量。因此,如果您的makefile直接设置CFLAGS变量,例如:

CFLAGS = -g -O2

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

您可以改为在命令行中添加变量分配:它们几乎优先于makefile中设置的所有内容。因此使用:

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

相反。

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

本文链接:https://www.f2er.com/3159507.html

大家都在问