想问我一直得到的链接器错误。我安装了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
的一部分,您所拥有的只是声明,并检查您是否已经在相应的源文件中提供了它的实现(即定义)并对其进行了编译。