c++ - 如何使我的 Qt 项目静态化 (.exe)

标签 c++ qt user-interface qt5

我用 Qt 做了一个测试程序,看看我是否喜欢它。所以我的一个 friend 问他是否可以看到该程序,所以我将项目构建为Release,并将其保存在

build-wordX1-Desktop_Qt_5_1_0_MinGW_32bit-Qt 5.1.0 MinGW 32bit Release \ Release

我不知道为什么,但是当我打开可执行文件时,我得到了这个

Error Message

我让它与另一个程序一起工作,但我必须包含 1 个文件夹和 15 个 DLL 以下是我必须包含的 DLL 列表:http://pastebin.com/7AHNWaDE

如果有人能提供帮助,我将不胜感激,提前致谢!

最佳答案

这是您尝试的一项相当困难的任务。您需要 Qt 的静态库。问题是,我不知道可以下载它的位置。所以你必须自己编译它。 您需要下载源并配置静态构建:

configure -opensource -release -static -nomake 示例 -nomake 演示

-nomake 示例 -nomake 演示可以节省您的时间。

这为您提供了所有 Qt 库的静态版本。它们以 .a 结尾。

在程序的 .pro 文件中,您必须添加: 配置+=静态

剩下的就是祈祷了。它很可能会失败并出现一些晦涩的错误消息。网络上充斥着人们对静态 Qt 构建遇到问题的报告。此外,由于许可证原因,发布静态链接的 Qt 程序并不容易。你的程序变得庞大。您没有节省任何磁盘空间。你的程序变得不灵活。 Digia 无法轻松替换 Qt 库来修复一些错误。除了极少数异常(exception),其中之一是 qt 安装程序框架,我想说:不要为静态 Qt 烦恼。

关于c++ - 如何使我的 Qt 项目静态化 (.exe),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18282764/

相关文章:

c++ - QObject 继承 Ambiguous Base

qt - 嵌套的 QMap 和 QList 不会让我追加/push_back

java - 单击按钮时从另一个类调用方法

html - 如何更改重叠按钮的 "click order"?

java - 从外部方法更改 void GUI 构造函数的 JLabel 值

c++ - 在文件中搜索一个单词并在 C 中替换它?

c++ - Linux 上的互锁等效项

c++ - Qt- 改变 QStringList 元素

c++ - 如何从 dll 中调用函数?

c++ - 插入的项目从 boost::mpl::map 中消失