Ниже мой код c:
#include main() { #ifdef HELLO printf(" hello "); #else printf(" else "); #endif }
И мои Makefiles:
all:
gcc uss_main.c -o out
Здесь я пытаюсь распечатать hello
, выполнив двоичный файл out
. Я хочу определить макрос HELLO
только во время выполнения make. Я попытался использовать make HELLO=11
, но он печатал только часть, я довольно нов, чтобы сделать. Пожалуйста, помогите мне улучшить мой Makefile. Заранее спасибо.
Вы можете определить макрос, используя флаг компилятора GCC следующим образом:
gcc -DHELLO=1 uss_main.c -o out
Если вы хотите передать его в make, вам нужно изменить Makefile. Примерно так:
USE_HELLO = $(if $(HELLO),-DHELLO=$(HELLO),)
all:
gcc $(USE_HELLO) uss_main.c -o out