【问题标题】:Slot problems with QT, linker errorQT 的插槽问题,链接器错误
【发布时间】:2011-11-04 14:39:27
【问题描述】:

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

错误 1 ​​错误 LNK2019:在函数“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

任何帮助将不胜感激。

【问题讨论】:

  • 这是一个链接器错误,所以不是标题问题。您是否在某处实现了该插槽? (确保你也尝试一个干净的构建。)
  • 是的,愚蠢至极!抱歉浪费时间!忘记在 cpp 中实现了。

标签: c++ qt slots


【解决方案1】:

错误 1 ​​错误 LNK2019: 无法解析的外部符号“public: int __thiscall ipodGuiLoaderQT::hello(void)”

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

【讨论】:

    猜你喜欢
    • 2020-10-01
    • 2017-06-07
    • 1970-01-01
    • 1970-01-01
    • 2011-04-17
    • 1970-01-01
    • 1970-01-01
    • 2021-08-28
    • 1970-01-01
    相关资源
    最近更新 更多