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

How can I create a standalone static library using QApplication?

本文关键字:静态 独立 何使用 QApplication 创建      更新时间:2023-10-16

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

所以我使用PIMPL,因为我不想暴露任何Qt类。

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

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

但是当我尝试从我的测试应用程序启动库时,我得到所有这些错误:

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

是的!这是有道理的。我得到这些,因为测试应用程序没有任何参考QtQApplication类。

那么我如何使用Qt,特别是我的库中的QApplication类,并且仍然能够在Plain c++ Projects中使用它?

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

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