Qt 5.9,windows
#include <QtCharts/QValueAxis>
包含该文件后编译报错
bash
1>c:\qt\qt5.9.7\5.9.7\msvc2013_64\include\qtcharts\qvalueaxis.h(60): warning C4003: "min"宏的实参不足
1>c:\qt\qt5.9.7\5.9.7\msvc2013_64\include\qtcharts\qvalueaxis.h(60): error C2059: 语法错误:"<L_TYPE_raw>"
1>c:\qt\qt5.9.7\5.9.7\msvc2013_64\include\qtcharts\qvalueaxis.h(60): error C2334: ":"的前面有意外标记;跳过明显的函数体
1>c:\qt\qt5.9.7\5.9.7\msvc2013_64\include\qtcharts\qvalueaxis.h(62): warning C4003: "max"宏的实参不足
1>c:\qt\qt5.9.7\5.9.7\msvc2013_64\include\qtcharts\qvalueaxis.h(88): error C2143: 语法错误 : 缺少")"(在";"的前面)
1>c:\qt\qt5.9.7\5.9.7\msvc2013_64\include\qtcharts\qvalueaxis.h(88): error C2059: 语法错误:")"
1>c:\qt\qt5.9.7\5.9.7\msvc2013_64\include\qtcharts\qvalueaxis.h(88): error C2238: 意外的标记位于";"之前
cpp
class QT_CHARTS_EXPORT QValueAxis : public QAbstractAxis
{
Q_OBJECT
Q_PROPERTY(int tickCount READ tickCount WRITE setTickCount NOTIFY tickCountChanged)
Q_PROPERTY(qreal min READ min WRITE setMin NOTIFY minChanged)
Q_PROPERTY(qreal max READ max WRITE setMax NOTIFY maxChanged)
Q_PROPERTY(QString labelFormat READ labelFormat WRITE setLabelFormat NOTIFY labelFormatChanged)
Q_PROPERTY(int minorTickCount READ minorTickCount WRITE setMinorTickCount NOTIFY minorTickCountChanged)
public:
explicit QValueAxis(QObject *parent = Q_NULLPTR);
~QValueAxis();
protected:
QValueAxis(QValueAxisPrivate &d, QObject *parent = Q_NULLPTR);
public:
AxisType type() const;
//range handling
void setMin(qreal min);
qreal min() const; //此处跟全局宏冲突
void setMax(qreal max);
qreal max() const; //此处跟全局宏冲突
void setRange(qreal min, qreal max);
原因是windows定义的min和max宏污染
解决办法:项目属性-C\C+±预处理器定义-添加宏NOMINMAX