【问题标题】:Cross-compile from (open)Solaris to Windows?从(开放)Solaris 到 Windows 的交叉编译?
【发布时间】:2010-12-24 22:02:48
【问题描述】:

有什么方法可以从 Solaris 或 OpenSolaris 设置交叉编译适用于 Windows(XP、Vista、Win7)的 C/C++ 代码,最好是 64 位和 32 位(适用于 Vista 和 Win7) ?我的代码库已经是跨平台的,我想作为自动化过程的一部分从 Solaris 或 Linux 交叉编译它(生成 Windows DLL 和 EXE)。

我想使用 GCC 套件,如果可能的话,我宁愿不需要使用 Cygwin DLL。

如果可能,在我的 Solaris 环境中我需要哪些工具?我将如何编译/链接整个项目?

如果这在 Solaris 中是不可能的,我应该如何从 Linux 开始,考虑到我想要我提到的所有 Windows 版本的 32 位和 64 位二进制文​​件?

提前感谢您的帮助!

【问题讨论】:

    标签: c++ c windows solaris cross-compiling


    【解决方案1】:

    我不确定您是想要交叉编译(在 Solaris 机器上创建 Windows EXE 文件)还是跨平台(在 Solaris 或 Windows 上编译的代码)。后者更容易,你应该首先在你的 Windows 机器上安装 MinGW 版本的 GCC 编译器。

    【讨论】:

    • 我的代码库已经是跨平台的,我想在自动化过程中从 Solaris 或 Linux 交叉编译它(生成 Windows DLL 和 EXE)。
    • MinGW 看起来确实很有趣。使用 MinGW 生成的二进制文件是否有依赖项(例如 cygwin.dll),而不是我明确想要链接到或系统二进制文件(例如 kernel32.dll)的那些?
    • 它们依赖于系统二进制文件(当然)和 msvcrt.dll,它应该安装在任何现代版本的 Windows 上。没有需要安装的 cygqin.dll 等效项。
    【解决方案2】:

    没有适用于 Windows 的 64 位交叉编译器,您必须使用 MSVC 编译器进行编译 :(

    【讨论】:

    • 有趣 - 我听说它存在,但它是一个 hacky 补丁集,无法使用。这有改变吗?
    【解决方案3】:
    【解决方案4】:

    呃,为什么不通过执行远程构建过程来自动化您的构建过程呢?这就是我们所做的——我们在 Windows 机器上安装了 CruiseControl.NET,它通过 sshexec 在 Linux 和 Solaris 上执行远程构建。我相信反过来也是可能的。

    【讨论】:

      猜你喜欢
      • 2011-09-02
      • 1970-01-01
      • 2023-01-27
      • 1970-01-01
      • 2021-05-03
      • 2017-02-03
      • 2014-01-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多