2010-08-10 3 views
10

Je suis en train de compiler Botan sur Windows avec MinGW, et je reçois l'erreur suivante lors de la compilation:swprintf et vswprintf non déclarés?

c:\qt\2010.04\mingw\bin\../lib/gcc/mingw32/4.4.0/include/c++/cwchar:159: error: 
'::swprintf' has not been declared 
c:\qt\2010.04\mingw\bin\../lib/gcc/mingw32/4.4.0/include/c++/cwchar:166: error: 
'::vswprintf' has not been declared 

Pourquoi swprintf et vswprintf non déclaré, et comment puis-je résoudre ce problème?

+1

L'un de vous a-t-il soumis un rapport de bogue à Qt? –

+0

Pas que je me souvienne. –

+0

Juste une note, 'vswprintf' devrait être appelé comme [' wvsprintf'] (https://msdn.microsoft.com/fr-fr/library/windows/desktop/ms647551 (v = vs.85) .aspx) sur Windows. Vous vous attendez à ce que ce soit 'vwsprintf()' ou 'vwcsprintf()' ou quelque chose suivant les autres conventions, mais 'wvsprintf()' c'est. – bobobobo

Répondre

11

Essayez de mettre en

#undef __STRICT_ANSI__ 

avant d'inclure stdio.h

+0

Ou ne pas compiler avec le commutateur -ansi? On dirait des en-têtes buggy. – wilx

+4

Compiler avec '-std = C++ 0x' semble provoquer cela même sans un' -ansi 'explicite (dans l'ancien MinGW GCC 4.4.0). Un nouveau GCC devrait le réparer (et rendre redondant '-std = C++ 0x') mais je n'ai pas encore vérifié. – Steve314

3

avait le même problème en utilisant la compilation Grantlee MinGW (Qt 2010,05).

Comment je suis arrivé à compiler:

  • fichier trouver cwchar (C: \ Qt \ 2010.05 \ MinGW \ lib \ gcc \ mingw32 \ 4.4.0 \ include \ C++ \ cwchar)
  • commenter les lignes suivantes (autour de la ligne 160)

    en utilisant :: swprintf;

    en utilisant :: vswprintf;

2

Lors de l'exécution de make, vérifiez que l'option -ansi n'est pas définie. Si ce drapeau est utilisé, retirez-le et le problème sera résolu.

Questions connexes