从 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)