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

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

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

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++项目中使用它呢?

最佳答案

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

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

关于c++ - 如何使用QApplication创建独立的静态库?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15882906/

10-15 17:20