2010-08-10 12 views
10

estoy tratando de recopilar Botan en Windows con MinGW, y estoy recibiendo el siguiente error durante la compilación:swprintf y vswprintf no declarado?

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 

¿Por qué swprintf y vswprintf no declarado, y cómo puedo solucionar este problema?

+1

¿Alguno de ustedes presentó un informe de error en Qt? –

+0

No es lo que recuerdo. –

+0

Solo una nota, 'vswprintf' se debe llamar realmente como [' wvsprintf'] (https://msdn.microsoft.com/en-us/library/windows/desktop/ms647551 (v = vs.85) .aspx) en Windows. Es de esperar que sea 'vwsprintf()' o 'vwcsprintf()' o algo similar a las otras convenciones, pero 'wvsprintf()' sí lo es. – bobobobo

Respuesta

11

trate de poner en

#undef __STRICT_ANSI__ 

antes de incluir stdio.h

+0

¿O no compila con el modificador -ansi? Parece encabezados con errores. – wilx

+4

La compilación con '-std = C++ 0x' parece causar esto incluso sin un' -ansi' explícito (en el antiguo MinGW GCC 4.4.0). Un GCC más nuevo debería arreglarlo (y hacer que '-std = C++ 0x' sea redundante) pero aún no lo he comprobado. – Steve314

3

tenía el mismo problema compilar Grantlee utilizando MinGW (Qt 2010.05).

¿Cómo lo tengo que compilar:

  • archivo hallazgo cwchar (C: \ Qt \ 2.010,05 \ MinGW \ lib \ gcc \ mingw32 \ 4.4.0 \ include \ C++ \ cwchar)
  • comente las siguientes líneas (alrededor de la línea 160)

    usando :: swprintf;

    usando :: vswprintf;

2

Al ejecutar make, asegúrese de que -ansi no esté configurado. Si esta bandera se está utilizando, quítela y el problema se resolverá.

Cuestiones relacionadas