【问题标题】:Building Qt static, can't find MinGW构建Qt静态,找不到MinGW
【发布时间】:2015-04-08 10:36:50
【问题描述】:

我正在尝试构建 Qt 的静态版本,因此我可以为我的项目制作一个 .exe 文件。

我找到了this 教程,并且正在使用教程作者制作的脚本。当我尝试运行脚本时,我的 PowerShell 给了我这个>

Building static Qt version 5.3.1
ERROR: MinGW environment not found, no Qt prebuilt version?
Press Enter to continue...:

这是不可能的。我知道这一点,因为我已经使用 Qt5 制作了项目并使用我的 MinGW 编译器构建了它们。

一些附加信息: MinGW 位于:

C:/Qt/Tools/mingw491_32 (/bin/gcc.exe)

当我打开脚本时,有这一行>

#Search all instances of gcc.exe from C:\Qt prebuilt environment. 
$GccList = @(Get-ChildItem -Path C:\Qt\*\Tools\mingw*\bin\gcc.exe | ForEach-Object FullName | Sort-Object)

所以,在我看来,脚本应该可以找到 gcc。

有人对这里发生的事情有任何想法吗?

谢谢。

【问题讨论】:

    标签: c++ windows qt powershell mingw


    【解决方案1】:

    替换 C:\Qt\*\Tools\mingw*\bin\gcc.exeC:\Qt\Tools\mingw*\bin\gcc.exe

    【讨论】:

      【解决方案2】:

      不完全是您问题的答案,但可能是您问题的解决方案。

      无需将 Qt 设为静态即可创建源代码的可执行文件。静态选项更适合没有操作系统的嵌入式系统,或者下面有一个非常薄的操作系统。我无法想象,这在 Windows 上会有意义。

      构建一个发布版本,将你的exe和Qt和mingw的所有必需的dll复制到一个目录,然后将该目录复制到任何Windows pc。它应该可以工作。

      要检查需要哪些 dll,请使用 depends-tool

      为了以更专业的方式提供您的 exe,请创建一个安装程序。我推荐Inno Setup,它非常好用。

      【讨论】:

      • 谢谢,设法做到了,但是现在,在复制了我的项目所依赖的所有 dll 之后,我的项目是> ~130 Kb .exe 文件和 ~44 MB 不同的 .dll 文件。有没有办法知道我的项目正在使用哪个 .dll 的哪一部分,以便我可以编辑其中的一些,从而使项目更小?
      • 您不需要包含 Windows 和系统目录中的所有 DLL。只有 Qt 和 Mingw 就足够了。从 Qt5Gui、Qt5Core、libwinpthread、libstdc++-6、libgcc 开始,依次添加缺失的 DLL。实际上,44 MB 在 Windows PC 上并不稀奇。您的项目非常小,因为所有功能都在 DLL 中。
      【解决方案3】:

      如果你想复制 dll 使用 windeployqt,它比使用依赖 walker 非常简单。这将为您复制所有 dll 到给定文件夹...

      Copy <MyApp.exe> to a folder say <MyAppPackage>
      
      cd to <MyAppPackage>
      
      C:\Qt\Qt5.7.0\5.7\mingw53_32\bin\windeployqt.exe MyApp.exe
      

      所有 dll 将被复制到 &lt;MyAppPackage&gt; 文件夹。

      【讨论】:

        【解决方案4】:

        它帮助了我:

        在我的( Windows 10) 系统。

        https://wiki.qt.io/Building_a_static_Qt_for_Windows_using_MinGW

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-09-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-12-31
          • 1970-01-01
          • 2010-10-04
          • 2019-08-01
          相关资源
          最近更新 更多