c++ - Qt Creator 给我 [debug:/moc_scheduled.cpp] 错误 1,我不知道为什么
问题描述
我的整个代码似乎都可以工作,据我所知,我已经 #included 了所有内容。真的真的迷失了这个,并强调该怎么做!请有人在我需要的时候救救我!:))
这是我的schedule.h文件:
#ifndef SCHEDULED_H
#define SCHEDULED_H
class Scheduled {
Q_OBJECT
public:
Scheduled(string *start, string *end, int *boilerLvl);
string* start;
string* end;
int* boilerlevel;
};
#endif
这是我的schedule.cpp文件:
#include "scheduled.h"
Scheduled::Scheduled(string *startTime, string *endTime, int *boilerSet)
{
start = startTime;
end = endTime;
boilerlevel = boilerSet;
};
我使用的所有其他文件在它们的顶部都有#include "schedule.h",并且不会抛出任何错误。
我的makefile看起来像这样:
QT += core gui widgets
CONFIG += c++11 console
QT += widgets uitools
# DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000
SOURCES += \
gui.cpp \
main.cpp \
main_copy.cpp \
scheduled.cpp \
screen1.cpp
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target
HEADERS += \
gui.h \
scheduled.h \
screen1.h \
status.h
FORMS += \
screen1.ui
最后,我得到的确切错误是:
[Makefile.Debug:411 调试/moc_scheduled.cpp] 错误 1
非常感谢你的帮助!:)
解决方案
在它的声明中使用的任何对象都应该从类Q_OBJECT
继承。QObject
删除Q_OBJECT
宏调用。
或者将您的标题更改为:
#ifndef SCHEDULED_H
#define SCHEDULED_H
#include <QObject>
class Scheduled : public QObject {
Q_OBJECT
public:
Scheduled(string *start, string *end, int *boilerLvl);
public:
string* start;
string* end;
int* boilerlevel;
};
#endif // SCHEDULED_H
推荐阅读
- python - 使用 Python 在 Windows 10 上显示通知
- hadoop - 缺失块和缺失块(复制因子为 1)有什么区别?
- javascript - 如何加速多个 crypto.randomBytes 调用
- vba - MS Visio 中的 VBA - 突出显示选定形状的连接器
- java - 为什么插入符号“^”不适用于 Java+Selenium+Eclipse?
- firebase - Firebase OnAuthStateChanged for Phone Auth 即使在 iOS 上也会触发
- node.js - firebase deploy --only hosting 给出错误:HTTP 错误:410,未知错误
- c - C 中的函数指针是如何工作的?- 具体例子
- python - Selenium (Python):getAttribute('value') 无法从文本输入中获取文本
- react-google-maps - react-google-maps:如何在父组件中使用 fitBounds API