Je fais du C, je compile avec gcc 4.5.2. Je suis sous Linux.
Code::Blocks utilise ça pour compiler chacun de mes fichiers :
gcc -Wmain -pedantic -Wextra -Wall -g -c /mnt/Data/Programmation/PC/Programmes/A68k/src/main.c -o ../obj/Debug/main.o
J'ai du code qui dit ça :
#include "strings.h" [...] fprintf(stderr, StrError);
Dans strings.h :
extern const char StrError[];
Et dans strings.c :
const char StrError[] = "\nERROR:\n";
Sous Windows : compile sans problème avec gcc sous MinGW.
Sous Linux, j'ai un warning : cmdline.c|67|warning: format not a string literal and no format arguments|
Donc il râle parce que :
- le second argument de fprintf n'est pas littéral (tout va bien si je remplace StrError par "abcde")
- il n'y a pas d'argument format (ben si ducon, c'est le deuxième justement !)
Pourquoi ? Qu'ai-je fumé encore ?
(l'a de la chance que je l'ai pas sous la main le {¹~@{\ de ¹{|[¹^\@[@ de @{^#|{# qui m'a dit "Folco, fais du C, ça accélère le développement"

