为什么在使用QT5时收到以下错误

why received the following error when using QT5?

本文关键字:错误 QT5 为什么      更新时间:2023-10-16

当我使用 QT5、Visual Studio 2012 x64 构建示例代码时,我收到以下错误,

static inline qint64 nullJd() { return std::numeric_limits<qint64>::min(); }
1>c:qtqt5.1.15.1.1msvc2012_64_openglincludeqtcoreqdatetime.h(121): warning C4003: not enough actual parameters for macro 'min'
    1>c:qtqt5.1.15.1.1msvc2012_64_openglincludeqtcoreqdatetime.h(121): error C2589: '(' : illegal token on right side of '::'
    1>c:qtqt5.1.15.1.1msvc2012_64_openglincludeqtcoreqdatetime.h(121): error C2059: syntax error : '::'

如何解决?

这应该可以为您修复它: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 项目:定义 += 名义最大值

而不是使用

<Windows.h> 

您也可以使用

<qwindows.h>

处理这些东西或使用 NOMINMAX