Compilação e construção usando make

0

Atualmente, quando vou invocar, vejo o seguinte ser executado

cc x.c -o x

O que eu gostaria de ver é o seguinte

cc -ggdb3 -O0 -std=c99 -Wall -Werror x.c -l<lib> -lm -o x

ou talvez

clang -ggdb3 -O0 -std=c99 -Wall -Werror x.c -l<lib> -lm -o x

Obviamente eu poderia digitar isso todas as vezes, mas eu preferiria usar o make para usar cc com esses parâmetros.

Existe algum arquivo de configuração em algum lugar?

    
por Dave Lawrence 05.01.2017 / 17:42

1 resposta

2

make geralmente usa variáveis para isso; em particular:

  • CC especifica o compilador C para usar;
  • CFLAGS especifica os sinalizadores do compilador C para passar o compilador;
  • LDLIBS especifica as bibliotecas a serem adicionadas (embora, em geral, você realmente deva escrever um Makefile que defina tudo que seu programa precisa para construir, o que geralmente inclui bibliotecas).

Então você correu

make CFLAGS="-ggdb3 -O0 -std=c99 -Wall -Werror" LDLIBS="-lm" x

para obter

cc -ggdb3 -O0 -std=c99 -Wall -Werror x.c -lm -o x

e

make CC="clang" CFLAGS="-ggdb3 -O0 -std=c99 -Wall -Werror" LDLIBS="-lm" x

para obter

clang -ggdb3 -O0 -std=c99 -Wall -Werror x.c -lm -o x

Você também pode definir as variáveis em seu ambiente (o que permite que os padrões sejam definidos em seus scripts de inicialização do shell):

export CFLAGS="-ggdb3 -O0 -std=c99 -Wall -Werror"
make LDLIBS="-lm" x

Devido à ausência de Makefile no seu caso, você provavelmente encontrará Como esse Makefile faz o programa C sem mesmo especificando um compilador? interessante! O manual do GNU Make também será útil.

    
por 05.01.2017 / 17:58

Tags