QT5.0 以上版本qdatetime.h:122: error: C2589: “(”:“::”右边的非法标记

最近用Qt5.2.0版本编译Windows下代码,发现编译错误


D:\Qt\Qt5.2.0\5.2.0\msvc2012\include\QtCore\qdatetime.h:122: error: C2589: “(”:“::”右边的非法标记

D:\Qt\Qt5.2.0\5.2.0\msvc2012\include\QtCore\qdatetime.h:122: error: C2059: 语法错误:“::”

错误代码如下:

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


一时间不知所云,google之

应该是系统函数与Qt的min函数冲突导致的,修改如下,添加括号


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


QT在Windows下编译还有很多小问题,比如有的时候代码其实没有编译,必须删除debug和release目录之后才会重新编译。


你可能感兴趣的:(QT5.0 以上版本qdatetime.h:122: error: C2589: “(”:“::”右边的非法标记)