É possível definir uma variável de macro através do make?

0

Abaixo está o meu código c:

#include

main() {    
    #ifdef HELLO
        printf(" hello ");
    #else
        printf(" else ");
    #endif
}

E meus Makefiles são:

all:
        gcc uss_main.c -o out

Aqui estou tentando imprimir hello executando o binário out . Eu quero definir a macro HELLO apenas no momento de fazer. Eu tentei usar make HELLO=11 , mas apenas imprimindo a parte else, eu sou muito novo para fazer. Por favor me ajude a melhorar meu Makefile. Desde já, obrigado.

    
por sree 10.10.2013 / 15:32

1 resposta

1

Você pode definir macro usando o sinalizador de compilador do GCC da seguinte forma:

gcc -DHELLO=1 uss_main.c -o out

Se você quer passá-lo para fazer, você precisa modificar o Makefile. Algo parecido com isto:

USE_HELLO = $(if $(HELLO),-DHELLO=$(HELLO),)

all:
     gcc $(USE_HELLO) uss_main.c -o out
    
por Alexey 10.10.2013 / 15:47