Qt包含QtCharts/QValueAxis时编译报错

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

相关推荐
源代码•宸11 分钟前
GoLang八股(Go语言基础)
开发语言·后端·golang·map·defer·recover·panic
rit843249920 分钟前
基于MATLAB的SUSAN特征检测算子边缘提取实现
开发语言·matlab
g***557522 分钟前
Java高级开发进阶教程之系列
java·开发语言
鲁正杰31 分钟前
【运维部署】现代化内网穿透与文件共享方案 (Rust)
运维·开发语言·rust
2401_876907521 小时前
USB TYPE-C 公头连接器设计规范总结:提升可靠性、降本增效的关键指南
c语言·开发语言·设计规范
额呃呃1 小时前
std::allocator<T>::destroy
开发语言
期待のcode1 小时前
Java虚拟机栈
java·开发语言·jvm
iso少年2 小时前
Go 语言并发编程核心与用法
开发语言·后端·golang
故事不长丨2 小时前
C#字典(Dictionary)全面解析:从基础用法到实战优化
开发语言·c#·wpf·哈希算法·字典·dictionary·键值对
Sun_小杰杰哇2 小时前
Dayjs常用操作使用
开发语言·前端·javascript·typescript·vue·reactjs·anti-design-vue