Qt:从QObject继承时未定义符号

时间:2016-10-30 10:30:24

标签: qt signals-slots undefined-symbol

我是Qt的新手,并尝试从Qt页面(http://doc.qt.io/qt-4.8/signalsandslots.html)编译一个示例,该示例实现了一个带有信号和插槽的简单类。在使用Qt Creator和qmake时,我都收到以下错误消息:

  

架构x86_64的未定义符号:
  “Counter :: valueChanged(int)”,引自:         main.o中的Counter :: setValue(int)         _main in main.o“vtable for Counter”,引自:         _main in main.o

有什么想法......?类似问题的答案涉及运行qmake,但正如我所说,在这种情况下会产生相同的错误。谢谢!

#include <QObject>

class Counter : public QObject
{
    Q_OBJECT

public:
    Counter() { m_value = 0; }

    int value() const { return m_value; }

public slots:
    void setValue(int value);

signals:
    void valueChanged(int newValue);

private:
    int m_value;
};

void Counter::setValue(int value)
{
    if (value != m_value) {
        m_value = value;
        emit valueChanged(value);
    }
}


int main()
{
    Counter a, b;
        QObject::connect(&a, SIGNAL(valueChanged(int)),
                         &b, SLOT(setValue(int)));

        a.setValue(12);     // a.value() == 12, b.value() == 12
        b.setValue(48);     // a.value() == 12, b.value() == 48
}

0 个答案:

没有答案