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?
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.
Probieren Sie make -k
statt nur make
aus. Das wird "weitermachen" anstatt zu stoppen.
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.
In gcc configure können Sie --disable-werror
hinzufügen.
Obwohl es ratsam ist, zuerst einen richtigen Patch zu suchen.
Wie wäre es mit "Pragma-Warnungen (aus, ...") in die fehlerhaften Teile Ihres Codes?
Siehe Ссылка .