在Linux上为Windows构建Qt 5

tsh*_*ang 56 qt qt5 mxe

我想迁移我的Qt 4应用程序而不是使用Qt 5.由于与MXE构建Qt 5的方式存在一些差异,这些指令失败,包括它使用模块化Qt tarball而不是一个大型tarball.

tsh*_*ang 97

以下是完整说明:

一些说明:

  • 这在我的64位Debian 8上进行了测试,当然也在Windows上进行了测试.

  • 输出是一个32位静态可执行文件,在64位Windows上运行良好.

  • 如果您需要64位可执行文件,请使用以下命令构建Qt:

    make MXE_TARGETS=x86_64-w64-mingw32.static qtbase
    
    Run Code Online (Sandbox Code Playgroud)

    默认MXE_TARGETS值为i686-w64-mingw32.static.

  • 不要忘记导出路径`$ export PATH = <mxe root>/usr/bin:$ PATH` (4认同)
  • 几年过去了,您的答案仍然有意义,而且是天赐之物。我刚刚使用qtcreator测试了它,即WSL中的MXE,使用qtcreator创建了静态链接的Windows可执行文件和非静态Linux可执行文件。谢谢! (2认同)

小智 7

git checkout命令不正确.你现在必须得到他们的稳定分支,否则它将无法建立.

git clone https://github.com/mxe/mxe.git
Run Code Online (Sandbox Code Playgroud)

应该...

git clone -b stable https://github.com/mxe/mxe.git
Run Code Online (Sandbox Code Playgroud)

仅此一项就修复了qtbase构建的所有问题,但在完成时没有留下任何qt文件夹.然后qt5目标将失败并出现模糊错误.删除文件夹,检查稳定,它完美无缺.

  • 我想这只是一个临时性的问题……master可以正常工作了,我实际上不记得它失败的时间,尽管我主要是构建qtbase而不是更大的qt5。 (2认同)
  • @ j35t3r我认为不再存在`stable`分支了. (2认同)