开发静态链接的Qt应用程序

时间:2014-08-12 08:58:11

标签: c++ qt visual-c++

我希望我的Qt应用程序能够运行,而不管Qt特定的DLL。为此,我应该静态链接可执行文件。然而,这需要一个静态的"安装Qt本身。

这就是我被困的地方。我浏览了几十个不同的教程页面,但它们与我的设置不兼容,写得不好或者只是错误。

这是我的情况:

  • 赢7,32位
  • 我已经安装了Qt(MSVC 2013版),在此处下载:http://qt-project.org/downloads(Windows 32位Qt 5.3.1(VS 2013,559 MB))
  • QtCreator工作正常,我能够开发Qt应用程序,但如前所述,它们是动态链接的
  • 这可能没什么关系,但我有Visual Studio插件版本1.2.3
  • 我前段时间也手动安装过MinGW(不使用Qt安装程序)


同样,我的目标如下:使用QtCreator编译静态链接的exes,不需要运行Qt DLL。

有人可以推荐一个描述我应该采取的步骤的教程/维基页面吗?

2 个答案:

答案 0 :(得分:0)

你需要的是Qt-Libs,它们可以静态链接,也不是DLL的存根。我在现场通过google发现了一些参考文献:

How to build a static Qt version for Windows with GCC

Building static libraries

两者都在使用GCC,但也应该可以使用MSVC进行构建。

答案 1 :(得分:0)

我终于弄明白了,然而,这确实花了我一整天时间。

Qt 5.2.1在构建源代码时充满了错误(或者我在某处读过)。我有多个编译问题,其中大部分都可以在互联网上挖掘几分钟后修复(编辑各种标题文件,篡改宏),但编译时间为> 2小时在我的Compaq上尝试并希望它能起作用太多了。

幸运的是,某个地方我偶然发现了使用4.8.6的建议。好吧,我下载了那个版本,用win32-msvc2013编译,添加到QtCreator,它运行正常。

注意:在编译4.8.6时,GCC可能会失败抱怨off64_t未定义。这似乎是一个与Qt无关的MinGW错误。此处描述了问题和解决方案:Static compilation of Qt 5 fails under mingw with reference to off64_t

我必须说,我真的不明白这种情况。 Qt是一个非常强大和流行的框架。能够开发独立的,独立的exes,不需要用户安装任何比Windows更多的东西是一个基本的要求,应该是一个孩子的游戏,但它是如此耗时和困难。

我之所以提出这个问题的原因是我找到的所有网页(以及此处建议作为答案)似乎都不适合我。