2015-04-29 42 views
2

我收到以下錯誤,當我使用建立一個QT5示例代碼時,Visual Studio 2012的X64,爲什麼在使用QT5時收到以下錯誤?

static inline qint64 nullJd() { return std::numeric_limits<qint64>::min(); } 

1>c:\qt\qt5.1.1\5.1.1\msvc2012_64_opengl\include\qtcore\qdatetime.h(121): warning C4003: not enough actual parameters for macro 'min' 
    1>c:\qt\qt5.1.1\5.1.1\msvc2012_64_opengl\include\qtcore\qdatetime.h(121): error C2589: '(' : illegal token on right side of '::' 
    1>c:\qt\qt5.1.1\5.1.1\msvc2012_64_opengl\include\qtcore\qdatetime.h(121): error C2059: syntax error : '::' 

如何解決?

+0

MinGW的編譯代碼確定 – demonplus

回答

4

這應該修復它爲您提供:https://forum.qt.io/topic/21605/solved-qt5-vs2010-qdatetime-not-enough-actual-parameters-for-macro-min-max/5

C++的最小/最大宏被稱爲錯誤。 因此,您可以在調用標題解決之前設置NOMINMAX。

有幾種方法可以實現這一點,正如我在發送的鏈接中描述的那樣。

即:

#define NOMINMAX 
#include <windows.h> 

或設置編譯器參數/DNOMINMAX

或傳遞給Qmake工程:限定+ = NOMINMAX

2

代替使用

<Windows.h> 

你也可以使用

<qwindows.h> 

這需要這個東西護理或使用NOMINMAX

相關問題