我想使用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 中使用它?
答案 0 :(得分:4)
您的类定义缺少Q_OBJECT
宏和/或您的构建系统未在您的文件上运行moc
。
此外,愿意在库中使用QApplication
类不是典型的设计模式。是什么让你在这里选择QApplication
?