如何为Qt应用程序创build可执行文件?

我一直在网上寻找有关这方面的有用和清楚的信息,这很烦人,这样一个微不足道的事情是很难做到的。

我需要的是为我的Qt项目创build一个可执行文件,以便在其他计算机上运行它。 我的项目在Qt Creator中运行得很好,但是当我尝试运行在release文件夹中创build的可执行文件时,我得到了关于某些dll缺失的错误,尽pipe我已经将它们全部放在我的.exe目录中,关于在DLL(QtCore4.dll)中的过程中入口点的错误。

该解决scheme看起来像一个静态链接,我发现了很多关于它的信息,但没有一个真正帮助我。 这是我迄今为止所尝试的:

  • 正如我上面所说的,使用release文件夹中创build的可执行文件。
  • 静态链接,按照这个教程(和其他许多人一样,都是几乎相同的东西): http : //doc.qt.io/qt-4.8/deployment-windows.html但是在“configure -static” :NMAKE:致命错误U1077:'“c:\ Arquivos de programas \ Microsoft Visual Studio 9.0 \ VC \ BIN \ cl.EXE”':返回代码'0x2'停止。 build立qmake失败,返回代码2

为此,我无法find任何解决scheme,所以在这里,我只是想为我的Qt项目创build一个可执行文件,希望你们能在这里给我点启发。

Solutions Collecting From Web of "如何为Qt应用程序创build可执行文件?"

基本上你必须寻找qt树,qt实用程序驻留深的mingw子文件夹,并复制所需的dll的。

这些是我遵循的基于QT 4.7.4的步骤,用正确的共享库打包应用程序。

  1. 假设您已经在c:\ qtsdk下安装了QT
  2. 打开你的项目,并在发布模式下进行编译。
  3. 转到这个目录:C:\ QtSDK \ Desktop \ Qt \ 4.7.4 \ mingw \ bin – 它包含所有的共享库。 调试库以“d” – frex结尾,QtCore.dll是发行版本,而QtCoreD.dll是调试版本
  4. 至少将这些文件复制到您的发布目录(您的.exe所在的位置)

    • mingwm10.dll
    • libgcc_s_dw2-1.dll
    • QtCore4.dll
    • QtGui4.dll

    我只是通过这种方式构建,测试和部署了一个虚拟项目。

这是我做了什么,并在一段时间后,我确定它的工作;确保您的程序建立在Qtcreator内,进入包含您的EXE目录,并双击它(我使用Windows,不知道如果它在其他平台上是相同的)。一个窗口应该弹出告诉你哪个.dll丢失。转到安装Qt的目录,并在搜索栏中输入确切的名称(在Windows 7右上角)和DLL应显示在搜索结果中。右键单击并选择打开的文件location.Copy您的EXE所在的位置的文件。再次双击该exe文件。如果另一个.dll丢失重复同样的事情,直到没有丢失。最后,程序应该运行。 希望这可以帮助。

所以你下载了Qt SDK,并且你想把Qt库静态地链接到你的应用程序中,对吗?

首先,如果你静态链接,你不需要任何Qt * .dll,因为它是内置在应用程序中。 因此,这意味着您的应用程序是使用动态链接构建的。

从我的经验来看,最安全的方法是:

下载Qt源代码,用nmake编译和安装(使用菜单开始 – >应用程序 – > Visual Studio 2008中的Visual Studio命令提示符)。 请记住,静态链接应用程序的大小取决于* .libs的大小,而这些大小取决于预生成配置,例如,可以通过关闭某些功能来最小化应用程序的大小(这是MacOSX的一个配置示例,只是注意为Windows特定的和添加适当的plaftorm – 请参阅configure.exe --help – 帮助详细信息):

 ./configure -arch x86 -platform macx-g++ --universal -cocoa -debug-and-release -opensource -static -fast -no-accessibility -no-sql-sqlite -no-qt3support -no-opengl -no-openvg -qt-zlib -no-gif -no-libmng -qt-libmng -no-libtiff -qt-libjpeg -no-3dnow -sse -no-sse2 -no-openssl -no-dbus -no-phonon -no-multimedia -no-audio-backend -webkit -no-script -no-scripttools -no-declarative -nomake demos -nomake examples -no-exceptions -no-accessibility -confirm-license 

安装,设置和使用Visual Studio加载项为您的Qt项目( 在这里 )。

祝你好运! 🙂