wake-up-neo.net

Wie kann ich kompilieren, ohne dass Warnungen als Fehler behandelt werden?

Das Problem ist, dass derselbe Code, der unter Windows gut kompiliert wird, unter Ubuntu nicht kompiliert werden kann. Jedes Mal, wenn ich diesen Fehler bekomme:

cc1: warnings being treated as errors

Nun, es ist eine große Codebasis und ich mag es nicht, alle Warnungen zu korrigieren.

Gibt es eine Möglichkeit, trotz Warnungen erfolgreich zu kompilieren?

60
Saurabh Verma

Danke für all die hilfreichen Vorschläge. Ich stellte schließlich sicher, dass sich in meinem Code keine Warnungen befinden, erhielt aber erneut diese Warnung von sqlite3:

Assuming signed overflow does not occur when assuming that (X - c) <= X is always true

was ich durch Hinzufügen der folgenden CFLAG behoben habe:

-fno-strict-overflow
2
Saurabh Verma

Stellen Sie fest, wo -Werror gesetzt ist, und entfernen Sie das Flag. Warnungen werden dann nur Warnungen sein.

58
Daniel Fischer

Mit -Wno-error können Sie alle Warnungen als solche behandeln. Sie können bestimmte Warnungen als solche behandeln, indem Sie -Wno-error=<warning name> verwenden, wobei <warning name> der Name der Warnung ist, die nicht als Fehler behandelt werden soll.

Wenn Sie alle Warnungen vollständig deaktivieren möchten, verwenden Sie -w (nicht empfohlen).


Quelle: http://gcc.gnu.org/onlinedocs/gcc-4.3.2/gcc/Warning-Options.html

21
orlp

Wenn Sie einen Linux-Kernel kompilieren. Wenn Sie beispielsweise die Warnung deaktivieren möchten, die "nicht verwendete, aber festgelegte Variable" ist, wurde dies als Fehler behandelt. Sie können eine Erklärung hinzufügen:

KBUILD_CFLAGS += $(call cc-option,-Wno-error=unused-but-set-variable,)

in deinem Makefile

3
Andy Zhang

Entfernen Sie -Werror aus Ihren Make- oder CMake-Dateien, wie in diesem Beitrag vorgeschlagen .

2
Andrea Araldo

-Wall- und -Werror-Compileroptionen können dies verursachen. Bitte überprüfen Sie, ob diese in den Compilereinstellungen verwendet werden.

1
Marlab