2010-03-13 22 views
11

Sto iniziando a conoscere i makefile. Guardando in uscita vedo un sacco di occorrenze:Significato di -DHAVE_CONFIG_H nei makefile

g++ -DHAVE_CONFIG_H -I ... 

cosa è -DHAVE_CONFIG_H esattamente? Qual è la funzione di questa opzione di compilazione?

risposta

20

Tutto ciò che -DHAVE_CONFIG_H deve definire il token di pre-processore HAVE_CONFIG_H esattamente come se si disponesse di #define HAVE_CONFIG_H all'inizio di ciascun file di origine.

Per quanto riguarda ciò per cui è utilizzato, ciò dipende interamente dal resto del file sorgente (e da tutto ciò che include anche). Ecco dove dovresti cercare di trovare il suo effetto.

E sembra può significare che un file di intestazione config.h è disponibile e dovrebbe essere incluso, nel qual caso probabilmente troverai la seguente sequenza da qualche parte in voi file di origine:

#ifdef HAVE_CONFIG_H 
    #include "config.h" 
#endif 

che sarà includi il file di intestazione quando dici che è disponibile. Comunque questa è la mia supposizione da parte mia e in nessun modo l'effetto esatto, solo che cosa I userei tale simbolo di preprocessore per.

+0

ma il modo in cui cosa significa "DEFS" in un Makefile? grazie – flow

+0

@Werner, dipende dal contesto. Se è "DEFS = -c -O2", è solo la definizione di una sostituzione che può essere utilizzata in seguito in modo che, ad esempio, "gcc $ (DEFS) blah blah" diventi "gcc -c -O2 blah blah". – paxdiablo

Problemi correlati