Sto costruendo il mio programma con il flag -pedantic
, che causa un errore extra ';'
(a causa di un'intestazione di terze parti che utilizza alcune macro in modo incoerente; non mostrato quando -pedantic
è spento). Non ho proprio voglia di spegnere -pedantic
, né di modificare l'intestazione. C'è un modo per sopprimere questo errore esatto? Come un commutatore -Wno-annoying-semicolon-error
o qualcosa del genere?Soppressione di "extra"; "" errore in GCC quando -pedantic è su
risposta
Per ovviare a questo problema, rimuovere -pedantic
. Nient'altro funzionerà su quel caso.
... o per risolvere il codice buggato. Ahimè. –
@RomanD Un extra punto e virgola è davvero "buggato"? –
@KyleStrand In realtà non è "buggato", ma neanche completamente corretto. Non ricordo quale libreria mi abbia causato questo problema quattro anni fa, ma c'era qualche magia magica che ha portato a questo problema. –
Utilizzare -isystem
piuttosto che -I
quando si superano i percorsi di inclusione, quindi GCC non ti avviserà delle intestazioni di sistema.
Per tutte le intestazioni gestite, è sufficiente modificarle.
Non ha funzionato per me. Incluso la libreria con -isistema ma sono stati lanciati degli avvisi per il cross-compilatore linux-> apple, ma sicuramente funziona per g ++ e clang – Flamefire
È possibile eliminare gli avvisi pedanti per le intestazioni esterni come questo:
//save compiler switches
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wpedantic"
//Bad headers with problem goes here
#include <ros/ros.h>
#include <sensor_msgs/LaserScan.h>
//restore compiler switches
#pragma GCC diagnostic pop
Perché si vuole utilizzare saccente? guardando http://gcc.gnu.org/onlinedocs/gcc-4.4.3/gcc/Warning-Options.html#Warning-Options sembra che non ci sia modo di fare ciò che vuoi. sicuramente se l'uso di pedantic è semplicemente basato su un sentimento, starai meglio senza di esso ;-) –
Beh, non solo sentimento :) Ci sono alcuni forti consigli che devo seguire –
Hmmm ingannevole. Non credo che l'intestazione di terze parti sia open source? Qualche possibilità di risolverlo? –