1

我想让我的应用程序对用户没有任何依赖。当我将 dll 文件放入与我的 exe 相同的文件夹中时,它运行良好。我正在尝试将所有这些库设置为静态,在我的 pro 文件(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 源代码。

4

2 回答 2

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了解更多信息。

于 2012-06-04T13:52:46.850 回答
0

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

于 2012-05-21T17:18:43.363 回答