2

我想使用该类创建一个带有Qt的独立静态库。QApplication

为此,我使用PIMPL,因为我不想公开任何Qt类。

我的私有实现看起来就像这样简单:

class Implementation : public QApplication {
public:
    Implementation(int argc, char *argv[]) :
        QApplication(argc, argv)
    {

    }
};

但是每当我尝试从我的测试应用程序启动库时,我都会收到所有错误:

undefined reference to `QApplication::metaObject() const'

是的!这确实有道理。我得到这些是因为测试应用程序没有对Qt类的任何引用QApplication

那么如何使用Qt,特别是QApplication我的库中的类,并且仍然能够在普通 C++ 项目中使用它?

4

1 回答 1

4

您的类定义缺少Q_OBJECT宏和/或您的构建系统没有moc在您的文件上运行。

此外,愿意使用QApplication中的类并不是典型的设计模式。是什么让你选择了这里?QApplication

于 2013-04-08T15:22:28.677 回答