到目前爲止,我已將所有代碼寫入visual studio,現在我需要添加一些UI,因此我將使用Qt 。所以我添加了每個文件在我的項目中(除了main類),然後嘗試使用Qt編譯它。因爲我已經使用了一些C++ 0x特性的我不得不加入這一行項目文件:Qt Creator編譯錯誤「:: swprintf和:: vswprintf尚未聲明」
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
什麼'gcc'生成命令是'qmake'生成? – Troubadour
請注意,[這個問題](http://stackoverflow.com/questions/3445312/swprintf-and-vswprintf-not-declared)討論了同樣的問題,所以它可能有一些用處。這可能是因爲你看到完全一樣的東西,儘管你沒有顯式地使用'-ansi'選項,所以可能不是。 – Troubadour
如果在命令行使用'g ++'而不是'gcc',它仍然可以工作嗎? – Troubadour