web-dev-qa-db-fra.com

Comment compiler sans que les avertissements ne soient traités comme des erreurs?

Le problème est que le même code qui compile bien sur Windows ne peut pas être compilé sur Ubuntu. Chaque fois que j'obtiens cette erreur:

cc1: warnings being treated as errors

Maintenant, c'est une base de code volumineuse et je n'aime pas résoudre tous les avertissements.

Est-il possible de compiler avec succès malgré les avertissements?

60
Saurabh Verma

Merci pour toutes les suggestions utiles. Je me suis enfin assuré qu'il n'y avait aucun avertissement dans mon code, mais encore une fois, cet avertissement a été reçu de sqlite3:

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

que j'ai corrigé en ajoutant le CFLAG suivant:

-fno-strict-overflow
2
Saurabh Verma

Bien sûr, recherchez où -Werror est défini et supprimez cet indicateur. Alors les avertissements ne seront que des avertissements.

58
Daniel Fischer

Vous pouvez faire en sorte que tous les avertissements soient traités comme tels en utilisant -Wno-error. Vous pouvez faire en sorte que des avertissements spécifiques soient traités en utilisant -Wno-error=<warning name>, où <warning name> est le nom de l'avertissement que vous ne voulez pas traiter comme une erreur.

Si vous voulez entièrement désactiver tous les avertissements, utilisez -w (non recommandé).


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

21
orlp

Si vous compilez le noyau Linux. Par exemple, si vous souhaitez désactiver l'avertissement "Variable non utilisée mais définie" traité comme erreur Vous pouvez ajouter une déclaration:

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

dans votre Makefile

3
Andy Zhang

Supprimez -Werror de vos fichiers Make ou CMake, comme suggéré dans cet article

2
Andrea Araldo

Les options du compilateur -Wall et -Werror peuvent en être la cause. Vérifiez si elles sont utilisées dans les paramètres du compilateur.

1
Marlab