Qt构建到一个没有dll的单个exe文件
Qt build to a single exe file without dlls
我在Widows 7上使用Qt库编写了一个简单的对话框。现在我需要把.exe
文件发给我的朋友,这样他就可以使用它了。但是我还需要发送大约10个.dll
文件,这样他才能使用它。我已经找到了所有的信,送去了,但他打不开。有一些"Visual c++运行时错误"。坦率地说,在我的另一台电脑上,我也无法打开它,出现了同样的错误。我用谷歌搜索了很多,找到了不同的答案,比如:
- 更新举
- 安装Microsoft Visual c++ 2010可重新分发包(vcredist_x86.exe)
但这一切都没有帮助我。所以我的问题是:
- 为什么它在我的电脑上工作,我已经开发了这个对话框,即什么是问题?
- 我怎么能摆脱所有的
.dll
的东西编译成一个.exe
文件容易?
1。为什么它在我的电脑上工作,我已经开发了这个对话框,即什么是问题?
因为你的计算机上安装了VC运行时。
有两种方法可以解决这个问题,
。你需要编译QT和你的exe与多线程(MT),而不是多线程dll (MTD)。
b。在你朋友的电脑上安装vc runtime
2。我怎么能摆脱所有的。dll的东西编译成一个。exe文件容易吗?
您必须将所有QT dll构建到库中(白色MT),并将您的exe与这些库链接。
这很耗时。而且你仍然需要windows dll。无论如何,如果你仍然想静态地链接Qt,这些链接可能非常有用:
- http://qt-project.org/wiki/How_to_build_a_static_Qt_version_for_Windows_with_gcc
- http://qt project.org/doc/qt - 4.8 -/-部署- windows.html
这个链接帮助我找到解决方案。https://bugreports.qt - project.org/browse/qtbug - 28766
我复制了"C:QtQt5.0.15.0.1mingw47_32bin"目录下的所有dll,但在将"platforms/qminimal.dll"answers"platforms/qwindows.dll"添加到我的。exe程序后,所有dll都解决了。
相关文章:
- 挂起和取消挂起一个文件DLL
- std::threads可以从Windows DLL中的全局变量创建/销毁吗?
- 导入库可以跨dll版本工作吗
- 从C++dll访问C#中的一行主要参数
- 链接到自行创建的dll失败
- 为什么使用 P/Invoke 调用 dll 时,某些计算机中的 LoadLibrary 失败?
- 在调用FreeLibrary后,释放动态链接到具有相同版本的CRT堆的DLL的内存
- 如何将一个ostringstream十六进制字符串字符对转换为单个unit8t等价的二进制值
- 如何指定我希望我的LIB链接到的DLL文件?-Visual Studio 2019
- vs 2015 C 重新分布可在单个DLL中
- 将非托管和托管dll合并到DotNet中的单个dll中
- 许多函数的单个DLL入口点
- 2个项目可以在MS VS 2008中创建单个DLL
- 无法在跨多个 DLL 的标头中定义单个对象
- 单个类实例在GUI exe和dll中是不同的
- 如何在vc++中在多个进程中加载单个DLL
- 如何在单个Windows环境中准备生成.dll和unix .so的构建作业
- Qt构建到一个没有dll的单个exe文件
- 如果一个应用程序中的多个线程调用单个DLL会发生什么?
- c++:如何在没有mingwm10.dll的情况下发布单个可执行文件