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

相关推荐
潜创微科技2 小时前
IT6520:USB‑C 转 MIPI 芯片方案 4K@120Hz 高清显示
c语言·开发语言
言之。3 小时前
【Python】免费的中文 AI 配音方案
开发语言·人工智能·python
天天进步20153 小时前
Python全栈项目:从零手操一个高性能 API 网关
开发语言·python
Java面试题总结3 小时前
java高频面试题(2026最新)
java·开发语言·jvm·数据库·spring·缓存
安生生申4 小时前
使用pygame实现2048
开发语言·python·pygame
hh.h.5 小时前
CANN算子开发入门:从零开始写第一个Ascend C算子
c语言·开发语言·cann·c算子
AI科技星5 小时前
全域数学·第三部·数术几何部·平行网格卷 完整专著目录(含拓扑发展史+学科定位·终稿)
c语言·开发语言·网络·量子计算·agi
SunnyDays10115 小时前
Java 读写 Excel 公式:从基础到高级的实战总结
java·开发语言·excel
wb043072015 小时前
Java 26
java·开发语言
白露与泡影5 小时前
JVM GC调优实战:从线上频繁Full GC到RT降低80%的全过程
java·开发语言·jvm