有没有办法在应用程序二进制文件中打包动态库?

时间:2009-11-06 18:10:13

标签: qt dll

您好我正在开发一个使用插件(动态库)的Qt应用程序,我想知道是否有一种方法可以在一个文件中构建应用程序和库(可能使用QResource功能?)

3 个答案:

答案 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,你已经设置好了。您可以在此处下载一个产品的试用版:

http://www.binary-soft.com/download.htm

答案 2 :(得分:0)

执行此操作时,请确保不要违反库的许可。如果库不可用作静态库,则它可能位于LGPL(甚至是GPL)之下。在任何一种情况下静态链接都会违反许可证,除非您同时根据GPL发布软件。