swprintf和vswprintf没有声明?

时间:2010-08-10 01:06:08

标签: c++ windows mingw botan

我正在尝试使用MinGW在Windows上编译Botan,并在编译期间收到以下错误:

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

为什么没有声明swprintf和vswprintf,我该如何解决这个问题?

3 个答案:

答案 0 :(得分:11)

尝试加入

#undef __STRICT_ANSI__ 

包括stdio.h之前

答案 1 :(得分:3)

在使用MinGW(Qt 2010.05)编译Grantlee时遇到了同样的问题。

我如何编译:

  • 查找文件cwchar(C:\ Qt \ 2010.05 \ mingw \ lib \ gcc \ mingw32 \ 4.4.0 \ include \ c ++ \ cwchar)
  • 评论以下行(第160行)

    使用:: swprintf;

    使用:: vswprintf;

答案 2 :(得分:2)

运行时确保未设置-ansi标志。如果正在使用此标志,则将其删除,问题将得到解决。