我想让我的应用程序对用户没有任何依赖性。当我将dll文件放入与我的exe相同的文件夹时,它运行良好。 我试图将所有这些库设置为静态使用我的专业文件中的以下代码(Qt 4.8.1):
QMAKE_LFLAGS += -static-libgcc
CONFIG += static
之前的代码并没有改变任何内容。
以下是我已包含在项目文件夹中的dll文件:
事实是,我不希望我的应用程序不仅仅是一个文件而且我不希望用户下载libs文件,这些文件很重(最后一个文件为9mB)。
有没有办法编译Qt项目并使用静态库?
我试过阅读我在互联网上找到的一些教程,但它们都已经过时了。对于我也读过的内容,解决方案是重建静态的Qt源代码。
答案 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大小会增加。