You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Qt Creator编译报错[debug/moc_scheduled.cpp] Error 1如何解决

问题修复方案

核心错误点1:Q_OBJECT宏使用不规范

你在Scheduled类中声明了Q_OBJECT宏,但该类未继承QObject基类,Qt元对象编译器(MOC)处理Q_OBJECT的前置要求就是所属类必须继承自QObject,这是触发moc_scheduled.cpp编译错误的直接原因。
两种修复方式二选一即可:

  • 如果你需要用到信号槽、Qt属性等元对象能力,修改scheduled.h如下:
#ifndef SCHEDULED_H
#define SCHEDULED_H
#include <QObject>
#include <string>

class Scheduled : public QObject {
    Q_OBJECT
public:
    Scheduled(std::string *start, std::string *end, int *boilerLvl, QObject *parent = nullptr);
    std::string* start;
    std::string* end;
    int* boilerlevel;
};
#endif

同时修改scheduled.cpp构造函数补全父类初始化:

#include "scheduled.h"

Scheduled::Scheduled(std::string *startTime, std::string *endTime, int *boilerSet, QObject *parent)
    : QObject(parent), start(startTime), end(endTime), boilerlevel(boilerSet)
{
}
  • 如果你不需要用到Qt元对象相关特性,直接删除类内的Q_OBJECT宏即可,无需继承QObject。

其他待修正问题

  • 你代码中直接使用string类型,既没有引入<string>头文件,也没有指定std::命名空间,需要补全对应声明。
  • 你提到其他文件引入的是#include "schedule.h",但你的头文件实际名称为scheduled.h,拼写不一致,若不是输入笔误请修正所有引入的头文件名。

最后操作

所有修改完成后,先清理项目,再执行qmake重新生成Makefile,之后重新编译即可解决报错,旧的MOC中间文件需要重新生成才能生效。


内容的提问来源于stack exchange,提问作者TheSmegler

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 08:36:03