Qt 4.7 找不到符号错误

Qt 4.7 Symbols not found error

本文关键字:符号 错误 找不到 Qt      更新时间:2023-10-16

谁能向我解释这个错误?似乎这是moc发生的错误:

Undefined symbols:
make: Leaving directory `/Users/Dylan/Documents/programming/qt/Clock-build-desktop'
  "ClockDelegate::ClockDelegate(QObject*)", referenced from:
      AnalogClockDelegate::AnalogClockDelegate(QObject*)in AnalogClockDelegate.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
make: *** [Clock.app/Contents/MacOS/Clock] Error 1
The process "/usr/bin/make" exited with code 2.
Error while building project Clock (target: Desktop)
When executing build step 'Make'

时钟代表:

#ifndef CLOCKDELEGATE_H
#define CLOCKDELEGATE_H
#include <QObject>
class QTime;
class QWidget;
class ClockDelegate : public QObject
{
    Q_OBJECT
public:
    explicit ClockDelegate(QObject *parent);
    virtual void paintClock(QWidget *, QTime *) = 0;
};
#endif // CLOCKDELEGATE_H

模拟时钟代表:

#ifndef ANALOGCLOCKDELEGATE_H
#define ANALOGCLOCKDELEGATE_H
#include <QColor>
#include <QPoint>
#include "ClockDelegate.h"
class QWidget;
class AnalogClockDelegate : public ClockDelegate
{
    Q_OBJECT
public:
    explicit AnalogClockDelegate(QObject *parent);
    void paintClock(QWidget *, QTime *);
private:
    void setupClockHands();
    void drawClockSurface(QWidget *clockView, QTime *);
    void drawHourComponent(QWidget *clockView);
    void drawMinuteComponent(QWidget *clockView, QTime *);
    void drawSecondComponent(QWidget *clockView, QTime *);
    QPoint   m_center;
    QPoint   m_hourHand[3];
    QPoint   m_minuteHand[3];
    QPoint   m_secondHand[2];
    QColor   m_hourColor;
    QColor   m_minuteColor;
    QColor   m_secondColor;
    QColor   m_clockFaceColor;
};
#endif // ANALOGCLOCKDELEGATE_H

我认为你错过了"public"关键字,假设ClockDelegate是一个QObject。否则,您不是从 QObject 派生的,因此无法使用Q_OBJECT。

class AnalogClockDelegate : public ClockDelegate
相关文章: