0

誰かがこのエラーを私に説明できますか?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'

ClockDelegate:

#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

AnalogClockDelegate:

#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
4

1 に答える 1

4

ClockDelegateがQObjectであると仮定すると、「public」キーワードが欠落していると思います。そうしないと、QObjectから派生していないため、Q_OBJECTを使用できません。

class AnalogClockDelegate : public ClockDelegate
于 2012-05-28T00:47:59.533 に答える