【发布时间】:2009-11-06 18:10:13
【问题描述】:
您好,我正在开发一个使用插件(动态库)的 Qt 应用程序,我想知道是否有一种方法可以在一个文件中构建应用程序和库(也许使用 QResource 功能?)
【问题讨论】:
您好,我正在开发一个使用插件(动态库)的 Qt 应用程序,我想知道是否有一种方法可以在一个文件中构建应用程序和库(也许使用 QResource 功能?)
【问题讨论】:
Qt 支持将插件静态链接到您的应用程序。见the documentation。
您在代码中使用 Q_IMPORT_PLUGIN() 宏,如下所示:
#include <QApplication>
#include <QtPlugin>
Q_IMPORT_PLUGIN(qjpeg)
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
...
return app.exec();
}
您还需要在 .pro 文件中列出 QTPLUGIN 中的插件:
QTPLUGIN += qjpeg
您可能还需要自己构建 Qt 的静态版本 - 不确定预构建版本是否包含静态库(我不使用预构建代码)。
【讨论】:
您需要一个像“DLL to Lib”这样的应用程序,它将您的 DLL 文件转换为静态库。然后,您将使用 .lib 文件而不是 DLL 进行链接,一切就绪。您可以在此处下载一个产品的试用版:
【讨论】:
执行此操作时,请确保不要违反库的许可。如果该库不能作为静态库使用,则它可能位于 LGPL(甚至 GPL)之下。在任何一种情况下静态链接都会违反许可证,除非您也在 GPL 下发布您的软件。
【讨论】: