当我使用 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