通过命令行将CFLAGS传递到Makefile

问题描述 投票:0回答:1

我正在尝试监视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,如果那很重要。

linux command-line makefile cflags
1个回答
0
投票

从环境中获取的变量(这就是您的工作方式)的优先级低于在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

© www.soinside.com 2019 - 2024. All rights reserved.