QtCreator - 使用静态DLL库

时间:2012-05-21 14:26:22

标签: c++ static-libraries qt-creator

我想让我的应用程序对用户没有任何依赖性。当我将dll文件放入与我的exe相同的文件夹时,它运行良好。 我试图将所有这些库设置为静态使用我的专业文件中的以下代码(Qt 4.8.1):

QMAKE_LFLAGS += -static-libgcc
CONFIG += static

之前的代码并没有改变任何内容。

以下是我已包含在项目文件夹中的dll文件:

  • libgcc_s_dw2-1.dll
  • mingwm10.dll
  • QtCore4.dll
  • QtGui4.dll

事实是,我不希望我的应用程序不仅仅是一个文件而且我不希望用户下载libs文件,这些文件很重(最后一个文件为9mB)。

有没有办法编译Qt项目并使用静态库?

我试过阅读我在互联网上找到的一些教程,但它们都已经过时了。对于我也读过的内容,解决方案是重建静态的Qt源代码。

2 个答案:

答案 0 :(得分:1)

为了能够对Qt进行完全静态编译,您需要将框架重建为静态,使用预编译的框架是不够的 - 除非您拥有商业许可并且可以获得静态二进制文件。

有关详细信息,请参阅:http://www.formortals.com/how-to-statically-link-qt-4/http://www.formortals.com/build-qt-static-small-microsoft-intel-gcc-compiler/http://doc.qt.nokia.com/4.7-snapshot/deployment.html#static-vs-shared-libraries

答案 1 :(得分:0)

下载已编译的库。如果您正在构建平台,请使用它的交叉编译库。您可以静态链接Makefile中的这些库[在makefile中的#INCLUDE和LIBS变量]。唯一的缺点是你的exe大小会增加。