2013-08-30 18 views
10

Ho familiarità con l'avvertenza che sopprime i pragma per GCC e Keil (sono diversi, ma l'utilizzo è praticamente lo stesso). Per un header di terze parti che posso fare qualcosa di simile:Come sopprimere gli avvisi nei file di origine di terze parti?

#pragma push 
#pragma suppress warning 
#include "whatever.h" 
#pragma pop 

Ma come posso sopprimere avvertimenti da fonti di terze parti? Sia Eclipse + GCC che Keil li generano. L'unica soluzione che ho trovato è quella di creare file .c di whacker, che includerà in altri file .c, che sembra un trucco molto sporco.

Esistono altre soluzioni?

+1

Se si avrebbe una ben nome e Set-apart ulteriormente vuoto file di origine tra cui la terza parte uno, lo chiamerei questo un "trucco", e non un " trucco molto sporco ". Questione di gusti ovviamente :-) Sono d'accordo sul fatto che una soluzione più "standard" sia altamente preferibile. –

+0

Questo trucco sarà anche un po 'scomodo per Eclipse, coz eclipse di default include tutti i file nella cartella del progetto nel processo di compilazione. Quindi queste fonti di terze parti verranno costruite due volte, una come loro e un'altra come inclusa. Certo, possono essere esclusi manualmente dal costruito, ma questo è un altro dolore. – Amomum

risposta

1

È possibile utilizzare -isystem anziché -Idir intestazioni di terze parti. Vedi GCC manual.

Se è possibile modificare file di origine di terze parti, è possibile utilizzare #pragma GCC diagnostic ignored "-Wwarning-to-disable" vedere GCC manual.

+0

Le intestazioni sono fuori questione. Inoltre, non sono sicuro, come posso farlo con Eclipse (dal momento che io uso la sua interfaccia per indicare le directory include). – Amomum

5

con gcc, durante la compilazione è possibile utilizzare -w opzione per eliminare gli avvisi.

-w: inibisce tutti i messaggi di avviso.

Esempio:

gcc -w third_party_sourcefile.c 
+1

Questo è un buon modo, ma non sono sicuro che sarà adatto per Eclipse, dal momento che genera makefile. – Amomum

+0

@Amomum, mi spiace non ho familiarità con Eclipse. qualcuno sicuramente ti darà anche informazioni utili su Eclipse. – Gangadhar