Je me suis rendu compte que j'avais besoin du compilateur -Wshadow
après que je mette du code, donc je décide de l'utiliser en Codeblocks
aussi, mais ça ne marche pas et je peux ' t comprendre pourquoi.Le compilateur "-Wshadow" ne fonctionne pas dans CodeBloks
Le code suivant:
#include <stdio.h>
int main(void){
int i = 0;
int arr[] = {1,2,3};
for (int i=0 ; i < 3 ; i++){
printf("%d ",arr[i]);
}
printf("\nI = %d\n",i);
}
Si je tente de le compiler dans mon Terminal
avec la flags
suivante:
-Wall -Wextra -Werror -Wstrict-prototypes -Wconversion -Wmissing-prototypes -Wold-style-definition -Wshadow -O0 -g
-je obtenir la sortie suivante, qui est OK:
program.c: In function ‘main’:
program.c:7:14: error: declaration of ‘i’ shadows a previous local [-Werror=shadow]
for (int i=0 ; i < 3 ; i++){
^
program.c:4:9: note: shadowed declaration is here
int i = 0;
^
cc1: all warnings being treated as errors
Maintenant, en utilisant le même compilateur Flags
ne semble pas pour travailler, compile bien sans avertissements, tout comme le drapeau -Wshadow
n'est pas présent.
Est-ce que quelqu'un sait comment résoudre ce problème?
version GCC est:
gcc (Ubuntu 5.3.0-3ubuntu1~14.04) 5.3.0 20151204
Regardez l'onglet "Build Log" dans Code :: Blocks, il montrera la ligne de commande exacte envoyée au compilateur. Vérifiez que cette ligne de commande contient votre drapeau; et utilisez copier-coller pour essayer la même ligne de commande dans votre console. Tous les avertissements apparaissent également dans Build Log. –
[Ceci] (http://pastebin.com/raw/mrfuTFgj) est mon Build-Log – Michi
Rien n'est construit ici, vous venez de lancer le programme que vous avez construit précédemment. Dans le menu Générer cliquez sur "Reconstruire" –