C++ Qt创建者编译错误“quot;::swprintf和::vswprintf尚未声明;

C++ Qt创建者编译错误“quot;::swprintf和::vswprintf尚未声明;,c++,qt,gcc,c++11,mingw,C++,Qt,Gcc,C++11,Mingw,到目前为止,我已经在VisualStudio中编写了所有代码,现在我需要向其中添加一些UI,以便使用Qt。所以我添加了项目中的每个文件(除了主类),然后尝试使用Qt编译它。由于我使用了一些c++0x功能,我不得不将这一行添加到项目文件中: QMAKE_CXXFLAGS += -std=c++0x 然后我试着编译它。只有两个错误(可能有更多错误,但编译器会在这两个错误上停止) 我不知道为什么会有这样的错误。为了确保我首先尝试使用cygwin/gcc使用以下命令编译相同的项目: gcc -std=

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

QMAKE_CXXFLAGS += -std=c++0x
然后我试着编译它。只有两个错误(可能有更多错误,但编译器会在这两个错误上停止)

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

gcc -std=c++0x TranslatorBase/ttArray.cpp -c -o ttArray.o
即使没有任何警告,它编译时也不会出错。事实上,我的项目中的每个文件编译时都没有任何警告

我现在使用的是基于QtV4.7.0的QtCreator 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\U STRICT\U ansi\U
标志的问题。问题已修复。

我遇到了相同的问题。将
-std=c++0x
更改为
-std=gnu++0x
也可以解决此问题。

生成的是什么
gcc
build命令?请注意,讨论了相同的问题,因此它可能有一些用处。可能你看到的是完全相同的东西,尽管你没有明确的
-ansi
选项,所以可能没有。如果你在命令行中使用
g++
,而不是
gcc
,它还能工作吗?@Troubadour:看起来这里也有同样的问题,当您要求编译器使用c++0x std选项进行编译时,它似乎也认为编译仅限于ansi。所以我只是按照中的建议做了。但我不知道它是否会破坏任何其他东西。-std=gnu++0x甚至不需要取消定义_ANSI@rezna这取决于您是否使用所需的unicode类型和函数(至少在我写这个答案时是这样)-ansi将取消对wstring、wprintf、wcout等函数和类的支持…@rezna另一个答案是这样说的!在使用
MinGW
构建
vtk5.8.0
时,我遇到了同样的问题。使用那面旗帜很有魅力。
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