Non esiste l'opzione -W
per "#pragma una volta nel file principale", quindi non è possibile disattivarlo tramite i soliti mezzi. (Tuttavia, gli sviluppatori Clang sono molto consapevoli del fatto che gli avvertimenti senza -W
opzioni di succhiare, e c'è una regola generale che nuove avvertimenti sempre ottenere -W
opzioni. Ripulire il codice vecchio, purtroppo, è lasciato come esercizio per frustrato . utenti)
Se non ti dispiace shell aggiustamenti, si può sempre fare qualcosa di simile:
# This gives the warning...
clang -c myheader.h
# ...This doesn't.
echo '#include "myheader.h"' | clang -c -x c++-header -o myheader.h.gch -
Il finale -
, come al solito, significa "leggere da stdin". Il -x c++
dice a Clang quale lingua stai usando (dal momento che non può sapere dall'estensione del file quando è senza file) e cambiare c++
a c++-header
significa che vogliamo produrre un file .gch invece di un .o file.
I due file .gch
così prodotti sono NON bit per bit identici. Non ne so abbastanza sui file gch per dirti cosa potrebbe essere notevolmente diverso dal loro comportamento. Comunque, dato che tutto quello che ti interessa è l'AST di Clang, scommetto che starai bene con quello. :)
Questo era il problema che avevo perché stavo usando $^nel mio makefile come scorciatoia. Avviso – VaelynPhi