静态构建 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.exe
和
C:\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
我正在尝试构建 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.exe
和
C:\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