Можно ли определить макропеременную через make?

Ниже мой код 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. Заранее спасибо.

0
задан 15.04.2020, 04:17

1 ответ

Вы можете определить макрос, используя флаг компилятора 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
0
ответ дан 15.04.2020, 04:18

Теги

Похожие вопросы