10
votes

swprintf et vswprintf non déclaré?

J'essaie de compiler Botan sur Windows avec Mingw et de recevoir l'erreur suivante lors de la compilation:

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


2 commentaires

Est-ce que vous avez déposé un rapport de bogue à Qt?


Juste une note, vswprintf devrait effectivement être appelé comme wvsprintf sous Windows. Vous vous attendez à ce qu'il soit vwsprintf () ou vwcsprintf () ou quelque chose qui suit les autres conventions, mais wvsprintf () c'est.


3 Réponses :


11
votes

Essayez de mettre dans xxx

avant, y compris stdio.h


2 commentaires

Ou ne compilez pas avec le commutateur --ansi? Ressemble à des en-têtes buggy.


Compiler avec -std = c ++ 0x semble provoquer cela même sans un explicite -ansi (dans Ye Olde Mingw GCC 4.4.0). Un nouveau GCC devrait le corriger (et créer -std = c ++ 0x redondant) mais je n'ai pas encore vérifié.



3
votes

avait le même problème à compiler Grandlee à l'aide de MINGW (QT 2010.05).

Comment je l'ai eu pour compiler:

  • Rechercher le fichier CWCHAR (C: \ QT \ 2010.05 \ MINGW \ LIB \ GCC \ MINGW32 \ 4.4.0 \ INCLUDE \ C ++ \ CWCHAR)
  • commentaire Les lignes suivantes (autour de la ligne 160)

    Utilisation :: swprintf;

    Utilisation :: VSWPRINTF;


0 commentaires

2
votes

Lors de l'exécution, assurez-vous que le drapeau -ansi n'est pas défini. Si ce drapeau est utilisé, supprimez-le et le problème sera résolu.


0 commentaires