Dołączam plik z biblioteki innej firmy, który wywołuje błąd, który może zostać obniżony do ostrzeżenia o numerze -fpermissive
. Ale ponieważ nie chcę "zanieczyszczać" mojego dziennika kompilacji tymi ostrzeżeniami, chcę całkowicie wyłączyć te wiadomości.W gcc, jak wyciszyć ostrzeżenie -fpermisive?
Do tej pory ustawiam opcję -fpermissive
z diagnostic pragma podczas dołączania pliku; coś takiego:
#pragma GCC diagnostic push
#pragma GCC diagnostic warning "-fpermissive"
#include <third-party-file.h>
#pragma GCC diagnostic pop
Ponieważ gcc zwykle zapewniają zarówno „pozytywne” i „negatywne” wersję -f
flagami, myślałem o ignorowanie „no-wydaniem” cechę:
#pragma GCC diagnostic ignored "-fno-permissive"
#include <third-party-file.h>
Ale tam nie wydaje się być "negatywną" wersją flagi -fpermissive
(używam gcc 4.6.3, ale nawet wersji 4.7.0 does not have it).
Czy mogę naśladować to zachowanie? Dzięki!
Opcja '-fno-permissive' jest ustawieniem domyślnym. '-fprissive' i nic nie jest" negatywną "i" pozytywną "wersją flagi. Powiedział, że nie powinieneś tego używać. Napraw kod! Nawet jeśli nie jest twój. – rubenvb
-no-permisywny nie jest domyślny, ponieważ opcja nie istnieje. Zachowanie, które miałoby, gdyby istniało, byłoby domyślne. Mogę naprawić kod, ale wydaje się bardziej jak obejście ... W każdym razie, naprawienie całego zestawu zawartych nagłówków nie jest tak naprawdę opcją. – piwi
to dokładnie to, co miałem na myśli. '-fpermisive' jest tutaj hack/obejściem. O jakim kodzie mówimy mimo wszystko. Może jest lepsza alternatywa. – rubenvb