Передача CFLAGS в Makefile из командной строки - PullRequest
0 голосов
/ 05 ноября 2019

Я пытаюсь отслеживать освещение в проекте 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

Из первой строки видно, что CFLAGS плохо добавляются, когда gccвызывается. Как я могу включить cflags в опции сборки gcc при запуске «make»?

Я использую Bash в Ubuntu 14, если это имеет значение.

1 Ответ

1 голос
/ 05 ноября 2019

Переменные, полученные из среды, как вы это делаете, имеют более низкий приоритет, чем переменные, установленные в make-файле. Таким образом, если ваш make-файл устанавливает переменную CFLAGS напрямую, например:

CFLAGS = -g -O2

, то ее установка в среде не переопределит эту настройку.

Вы можете добавить в команду назначения переменныхвместо строки: они имеют приоритет почти над всем, что установлено в make-файле. Поэтому используйте:

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

.

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

...