从 Mac 为 Windows、Linux 交叉编译 C++/QT [关闭]

Posted

技术标签:

【中文标题】从 Mac 为 Windows、Linux 交叉编译 C++/QT [关闭]【英文标题】:Cross-Compiling C++/QT from a Mac for WIndows, Linux [closed] 【发布时间】:2013-10-01 14:33:39 【问题描述】:

我开发了一个 C++/QT 应用程序,我正在尝试为 Mac、Windows 和 Linux 编译它。我选择 C++ 只是为了让它与这些主要操作系统兼容。我可以为 mac 编译它就好了。

我发现了交叉编译,但有些已经过时或没有很好的文档记录......或者不保证它们可以在最新版本的 Windows 或 Mac 上工作。

我确实在我的机器上安装了 Virtual Windows 和 Cent OS,但我觉得手动编译应用程序太过分了。

那么,你推荐任何可靠的交叉编译器吗?或者有什么方法可以自动编译,所以如果必须的话,它可以通过登录到我的虚拟 Windows 或 Cent OS 安装来编译?

仅供参考...不仅可以交叉编译,还可以生成 32 位和 64 位版本!

【问题讨论】:

【参考方案1】:

对于 Mac 和 linux,如果您的操作系统中安装了 g++ 编译器,则不会有大问题。但是您需要在 Windows 安装中安装 Mingw 或 cygwin 以为您的程序提供 gcc 和 g++ 编译器,如果您想自动化编译过程,您可以使用 Makefile 或尝试查看 autotools .

【讨论】:

【参考方案2】:

我所知道的唯一交叉编译器是 GCC。不久前,我实际上在 Linux 上使用它为 S/390 进行交叉编译,并在 Power Mac 上交叉编译 ARM 代码(我使用the instructions here 进行设置)。

也就是说,我认为您想要的是在运行 Windows 的 32 位虚拟机上交叉编译 Windows x64。如果是这种情况,那么您很幸运,因为自 Windows 2000 SDK 以来,Microsoft 实际上免费提供了带有 Windows SDK 的交叉编译器。我实际上在运行 XP 的 Virtual PC 上使用 Windows Vista SDK(6.1 版)为 Windows x64 编译。 Here你可以下载最新版本的SDK,它是编译器自带的。我查看了系统要求,它仍然支持 XP,所以这应该对你有好处。

请注意,编译器与 Visual Studio 附带的编译器相同,但您必须从 SDK 安装的命令行环境中调用它们,方法是使用 'cl' 'nmake'.

您可以通过对 32 位发出 SETENV /x86 或对 64 位发出 SETENV /x64 来选择编译模式 - Itanium 还有另一种模式,但我从未使用过它-。 Visual Studio IDE 不包括在内,因为它是一种付费产品,但免费的优质编译器对任何人来说都足够好。

【讨论】:

以上是关于从 Mac 为 Windows、Linux 交叉编译 C++/QT [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Go交叉编译 Build(Mac/linux/Windows)

Go交叉编译 Build(Mac/linux/Windows)

将现代 C++ 从 Linux 交叉编译到 Windows

aarch64-linux-gnu-g++ 交叉编译为 arm64 错误

golang交叉编译笔记

交叉编译查询,从Windows到Linux,从Linux到Windows,