簡體   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