最近用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目录之后才会重新编译。