QT插槽问题,链接错误



想问我一直得到的链接器错误。我安装了QT,并在Visual Studio 2005上使用它。基本上,每当我尝试声明一个槽时,我都会得到这个链接器错误消息。

错误1错误LNK2019:未解决的外部符号"public: int __thiscall ipodGuiLoaderQT::hello(void)"(?hello@ipodGuiLoaderQT@@QAEHXZ)引用函数"public: virtual int __thiscall ipodGuiLoaderQT::qt_metacall(enum QMetaObject::Call,int,void * *)"(? qt_metacall@ipodGuiLoaderQT@@UAEHW4Call@QMetaObject@@HPAPAX@Z) moc_ipodguiloaderqt.obj

这通常表明我没有包含正确的头文件。但我应该这么做。以下是目前为止的代码:

#ifndef IPODGUILOADERQT_H
#define IPODGUILOADERQT_H
#include <QtGui/QMainWindow>
#include <QtGui/QAction>
#include <QObject>
#include "ui_ipodguiloaderqt.h"

class ipodGuiLoaderQT : public QMainWindow
{
    Q_OBJECT
public:
    ipodGuiLoaderQT(QWidget *parent = 0, Qt::WFlags flags = 0);
    ~ipodGuiLoaderQT();
private:
    Ui::ipodGuiLoaderQTClass ui;
    QAction* blah;
    public slots:
        int hello();

};
#endif // IPODGUILOADERQT_H

错误1错误LNK2019:未解决的外部符号"public: int __thiscall ipodGuiLoaderQT::hello(void)"

链接器清楚地告诉你它找不到哪个是ipodGuiLoaderQT::hello(void)的定义。作为类ipodGuiLoaderQT的一部分,您所拥有的只是声明,并检查您是否已经在相应的源文件中提供了它的实现(即定义)并对其进行了编译。

最新更新