静态构建 Qt,找不到 MinGW

Building Qt static, can't find MinGW

我正在尝试构建 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。

有人知道这里发生了什么吗?

谢谢。

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

创建源代码的可执行文件时无需将 Qt 设为静态。 static 选项更适合没有 OS 或下面非常薄的 OS 的嵌入式系统。我无法想象,这在 windows.

上是有意义的

构建一个发布版本,将你的exe和所有需要的Qt和mingw的dll复制到一个目录,并将这个目录复制到任何windows台电脑。它应该可以工作。

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

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

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

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

Copy <MyApp.exe> to a folder say <MyAppPackage>

cd to <MyAppPackage>

C:\Qt\Qt5.7.0.7\mingw53_32\bin\windeployqt.exe MyApp.exe

所有 dll 将被复制到 <MyAppPackage> 文件夹。

它帮助了我:

读取“C:\Qt*\Tools\mingw*\bin\gcc.exe”的路径需要更改为“C:\Qt\Tools\mingw*\bin\gcc .exe" 在我的 (Windows 10) 系统上。

https://wiki.qt.io/Building_a_static_Qt_for_Windows_using_MinGW