为什么使用QT5会出现如下错误?
why received the following error when using QT5?
我在使用 QT5 构建示例代码时遇到以下错误,Visual Studio 2012 x64,
static inline qint64 nullJd() { return std::numeric_limits<qint64>::min(); }
1>c:\qt\qt5.1.1.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.1.1\msvc2012_64_opengl\include\qtcore\qdatetime.h(121): error C2589: '(' : illegal token on right side of '::'
1>c:\qt\qt5.1.1.1.1\msvc2012_64_opengl\include\qtcore\qdatetime.h(121): error C2059: syntax error : '::'
如何修复?
C++ min/max 宏调用错误。
所以你可以在调用header之前设置NOMINMAX来求解。
有几种方法可以实现这一点,正如我发送的 link 中所描述的那样。
即:
#define NOMINMAX
#include <windows.h>
或者设置编译参数/DNOMINMAX
或者传给qmake项目:DEFINES += NOMINMAX
而不是使用
<Windows.h>
你也可以使用
<qwindows.h>
它负责这些东西或使用 NOMINMAX
我在使用 QT5 构建示例代码时遇到以下错误,Visual Studio 2012 x64,
static inline qint64 nullJd() { return std::numeric_limits<qint64>::min(); }
1>c:\qt\qt5.1.1.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.1.1\msvc2012_64_opengl\include\qtcore\qdatetime.h(121): error C2589: '(' : illegal token on right side of '::'
1>c:\qt\qt5.1.1.1.1\msvc2012_64_opengl\include\qtcore\qdatetime.h(121): error C2059: syntax error : '::'
如何修复?
C++ min/max 宏调用错误。 所以你可以在调用header之前设置NOMINMAX来求解。
有几种方法可以实现这一点,正如我发送的 link 中所描述的那样。
即:
#define NOMINMAX
#include <windows.h>
或者设置编译参数/DNOMINMAX
或者传给qmake项目:DEFINES += NOMINMAX
而不是使用
<Windows.h>
你也可以使用
<qwindows.h>
它负责这些东西或使用 NOMINMAX