Por que o 'Makefile' exige dependência?

0

Eu me pergunto por que o 'Makefile' exige uma linha de dependência, apesar de uma linha de comando já ter uma lista de arquivos. Por exemplo,

hello : main.o hello.o

        gcc -o main.o hello.o

O comando gcc já contém main.o, hello.o. Escrever linha de dependência parece ineficiente.

    
por comphys 11.02.2017 / 14:48

1 resposta

5

Sim, mas é a regra de criação desnecessária, não a dependência. São as dependências que fazem make tick, afinal. A regra para construir também está seriamente errada (irá sobrescrever main.o em vez de construir hello ).

Usando as regras implícitas, isso pode ser reduzido para apenas

hello: main.o hello.o

Ou se você quiser uma regra de criação explícita além da dependência:

hello: main.o hello.o
    $(CC) -o $@ $<
    
por 11.02.2017 / 14:57

Tags