到目前为止,我已经在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__标志来编译选项.问题解决
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。