您好我正在开发一个使用插件(动态库)的Qt应用程序,我想知道是否有一种方法可以在一个文件中构建应用程序和库(可能使用QResource功能?)
答案 0 :(得分:3)
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 - 不确定预构建的版本是否包含静态库(我不使用预构建的代码)。
答案 1 :(得分:0)
您想要一个像DLL to Lib这样的应用程序,它将您的DLL文件转换为静态库。然后你将链接.lib文件而不是DLL,你已经设置好了。您可以在此处下载一个产品的试用版:
答案 2 :(得分:0)
执行此操作时,请确保不要违反库的许可。如果库不可用作静态库,则它可能位于LGPL(甚至是GPL)之下。在任何一种情况下静态链接都会违反许可证,除非您同时根据GPL发布软件。