繁体   English   中英

Qt Creator 编译错误“::swprintf and::vswprintf has not been declared”

[英]Qt Creator compilation error “::swprintf and ::vswprintf has not been declared”

到目前为止,我已经在 Visual Studio 中编写了所有代码,现在我需要向它添加一些 UI,所以我将使用 Qt。 所以我在我的项目中添加了每个文件(主类除外),然后尝试使用 Qt 编译它。 因为我使用了一些 c++0x 功能,所以我不得不将此行添加到项目文件中:

QMAKE_CXXFLAGS += -std=c++0x

然后我尝试编译它。 只有两个错误(可能有更多但编译器在这两个上停止)

In file included from d:\qt\mingw\bin\../lib/gcc/mingw32/4.4.0/include/c++/bits/postypes.h:42,

                 from d:\qt\mingw\bin\../lib/gcc/mingw32/4.4.0/include/c++/iosfwd:42,

                 from d:\qt\mingw\bin\../lib/gcc/mingw32/4.4.0/include/c++/ios:39,

                 from d:\qt\mingw\bin\../lib/gcc/mingw32/4.4.0/include/c++/ostream:40,

                 from ../TranslatorBase/ttObject.h:5,

                 from ../TranslatorBase/ttArray.h:5,

                 from ../TranslatorBase/ttArray.cpp:1:

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

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

我不知道为什么会有这样的错误。 并确保我首先尝试使用 cygwin/gcc 使用以下命令编译相同的项目:

gcc -std=c++0x TranslatorBase/ttArray.cpp -c -o ttArray.o

即使没有任何警告,它也没有编译错误。 事实上,我项目中的每个文件都在编译时没有任何警告。

我现在正在使用基于 Qt v4.7.0 的 Qt Creator v2.0.1,它使用的是 mingw/gcc v4.4.0

- 编辑 -

只是我发现的一个新东西,即使没有我的源文件(仅使用 Qt 生成的文件),仍然存在编译错误。 我的 gcc 似乎有问题。

@Troubadour Qt 生成了这个命令:

g++ -c -std=c++0x -g -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I'd:/Qt/qt/include/QtCore' -I'd:/Qt/qt/include/QtGui' -I'd:/Qt/qt/include' -I'd:/Qt/qt/include/ActiveQt' -I'debug' -I'.' -I'../TranslatorUI' -I'.' -I'd:/Qt/qt/mkspecs/win32-g++' -o debug/ttArray.o ../TranslatorBase/ttArray.cpp

正如 Troubadour 所建议的,这是 mingw 的一个问题,当您将 -std=c++0x 标志添加到编译选项时,mingw 也会自动添加 -ansi 标志,因此为了修复我在编译选项中添加了-U__STRICT_ANSI__标志。 问题已解决。

我遇到了同样的问题。 -std=c++0x更改为-std=gnu++0x也可以修复它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM