如何使用QApplication创建独立的静态库?

时间:2013-04-08 15:19:08

标签: c++ qt static-libraries

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

为此,我使用 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类,并且仍能在 Plain C ++ Projects 中使用它?

1 个答案:

答案 0 :(得分:4)

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

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