gcc, make: Wie kann man die Fail-On-Warnung deaktivieren?

7

Ich versuche gcc für die Verwendung mit einem AVR-Mikrocontroller und avr-ada zu bauen, und ich habe einen Roadblock bekommen, der durch meinen normalen Compiler verursacht wurde, der zu wählerisch ist bezüglich der Version, die ich für den AVR brauche. Ich erhalte die folgende Warnung, was dazu führt, dass der gcc oder make einen Fehler meldet:

%Vor%

Gibt es eine Möglichkeit, gcc anzuweisen oder zu machen, dass Warnungen nicht fehlschlagen?

    
Dr. Watson 10.03.2010, 03:07
quelle

7 Antworten

5

Der Trigger ist hier das -gnatpg (eigentlich das -gnatg): das ist der "GNAT-Implementierungsmodus (wird zum Kompilieren von GNAT-Units verwendet)". -gnatp bedeutet "alle Prüfungen unterdrücken".

Ich bin mir nicht sicher über die volle Wirkung von -gnatg, obwohl es auf jeden Fall dazu führt, dass Warnungen als Fehler - wie -Werror - behandelt werden, während der Compiler selbst gebaut wird; Ich denke, ich erinnere mich an nicht-tödliche Warnungen während des Aufbaus der RTS.

Eine Möglichkeit wäre, einfach exp_ch5.adb von Hand ohne -gnatg zu kompilieren; Der Befehl, den Sie aufgelistet haben, wurde unter gcc / ausgegeben, also

%Vor%

Dann sichern Sie eine Ebene und "machen" Sie erneut.

Dies ist ein Cross-Compiler, also werden Sie nicht (ich hoffe!) dies für alle drei Phasen eines vollständigen Builds wiederholen müssen.

    
Simon Wright 10.03.2010, 21:10
quelle
32

Probieren Sie make -k statt nur make aus. Das wird "weitermachen" anstatt zu stoppen.

    
Dirk Eddelbuettel 10.03.2010 03:13
quelle
8

Als Alternative zum Tauchen in das Build-System versuchen Sie, -Wno-error in CFLAGS zu setzen, was Sie über die Umgebung (oder zum Zeitpunkt der Konfiguration, wenn Sie das GNU-Build-System verwenden) tun können.

    
Jack 10.03.2010 05:51
quelle
4

Im Allgemeinen ist es keine gute Idee, Warnungen von Ihrem Compiler zu ignorieren. Wenn dies jedoch ein Teil eines größeren make-Prozesses ist, ist wahrscheinlich ein -Werror -Flag früher in der Sequenz eingefügt. Fange damit an, danach zu suchen.

Nachdem Sie sich umgeschaut haben, scheint es eine Fülle von Flags zu geben, um die Warnungen beim Kompilieren des Ada-Codes zu kontrollieren. Zum Beispiel wird -gnatwF Warnungen auf nicht referenzierten Formularen unterdrücken gemäß diese Anleitung . Möglicherweise finden Sie den von Ihnen benötigten Schalter in der dort angegebenen Liste.

    
ezpz 10.03.2010 03:22
quelle
3

Es scheint, dass das -Werror-Flag in Makefile gesetzt ist. Vielleicht können Sie in Makefile nach CFLAGS-Optionen suchen und das -Werror-Flag entfernen. Die Werrorfahne macht alle Warnungen zu Fehlern.

    
ZelluX 10.03.2010 03:20
quelle
2

In gcc configure können Sie --disable-werror hinzufügen.

Obwohl es ratsam ist, zuerst einen richtigen Patch zu suchen.

    
Bob Blogge 09.05.2013 16:49
quelle
0

Wie wäre es mit "Pragma-Warnungen (aus, ...") in die fehlerhaften Teile Ihres Codes?

Siehe Ссылка .

    
user275257 11.03.2010 14:40
quelle

Tags und Links