QT 使用 MinGW 启用交叉编译(预编译)
Posted
技术标签:
【中文标题】QT 使用 MinGW 启用交叉编译(预编译)【英文标题】:QT enable cross-compiling using MinGW (precompiled) 【发布时间】:2016-11-12 20:17:22 【问题描述】:大家好
我一直在寻找一种在 Linux 中交叉编译 QT-Creator 的方法,但一直遇到很多麻烦。
背景信息
请注意:我在一台 Linux 机器上,想交叉编译 Windows 应用程序
我的系统:
Ubuntu Gnome 16.10 QT Creator 4.0.2(基于 QT 5.7)我遇到了一些 SO links、一些带有错误指令的博客等,one 似乎很有帮助,但找不到依赖项。
我还尝试了另一个编译器 MXE 并克隆并尝试从 GIT repo 构建 MXE 编译器,但失败了(构建错误没有解决方案 - VTK 构建错误)
我决定从 sourceforge 下载precompiled MinGW compilers(i686 和 x86_x64 版本)
问题:
在QT Creator中,添加编译器没有问题,添加“Kit”并选择新添加的编译器,红色感叹号给出错误
编译器 (x86_windows_msys_pe_64bit) 无法为 QT 版本 5.7.0 GCC 64Bit (x86_linux_generic_elf_64bit) 生成代码
这发生在 32 + 64 位编译器上。
【问题讨论】:
【参考方案1】:我认为你应该有一个与你的编译器 ABI 匹配的 QT 版本。该错误告诉您 MinGW 编译器与您使用的 QT 的 Linux 版本不匹配。因此,获取 Windows 版本的 QT 并使用它(就像您添加了 WinGW 一样)。
您可以从here 下载 Qt 二进制文件。
【讨论】:
感谢您的回复,我安装了 GCC 6,MinGW 编译器使用x86_64-w64-mingw32-gcc (GCC) 6.2.0 20160822
,虽然 QT-Creator 使用 GCC 4.9,如果 QT-Creator 4.0.2(基于 QT 5.7)使用 GCC 4.9,我应该尝试使用 GCC 6 构建 QT-Creator 4.0.2 吗?
@KGCybeX 你应该得到一个 Windows 版本的 Qt。如果您愿意,您可以使用 MinGW 构建 Qt for Windows 并使用它。
这正是我不想要的,我想在 Linux 中编译 .exe
,从而避免启动到 Windows。
@KGCybeX 不,您应该在 Linux 上拥有用于 Windows 的 Qt 库,以便为 Windows 编译 Qt 程序。
感谢您的建议,最后,您知道我应该如何包含这些库吗?我应该将它们放在相关的 linux 目录中(与每个 windows lib 的 linux lib 相同的目录)还是应该将其添加到编译器 lib 结构中?以上是关于QT 使用 MinGW 启用交叉编译(预编译)的主要内容,如果未能解决你的问题,请参考以下文章
如何配置 Qt 以实现从 Linux 到 Windows 目标的交叉编译?
在Linux下使用MinGW静态交叉编译带有zlib的libcurl(包括交叉编译openssl,即--cross-compile-prefix=i686-w64-mingw32- mingw)(代码