【问题标题】:Cross-compile on a Linux host for various targets在 Linux 主机上针对各种目标进行交叉编译
【发布时间】:2013-12-07 02:06:38
【问题描述】:

我在 Linux 开发主机上有一组或多或少可移植的 C/C++ 源代码,我希望能够:

  1. 为 32 位和 64 位 Linux 目标编译
  2. 针对 32 位和 64 位 Windows 目标进行交叉编译
  3. 针对 32 位和 64 位 Mac 目标进行交叉编译
  4. 并且,理想情况下,没有任何运行时依赖于其他仿真 DLL,如 cygwin1.dll、MinGW 等,但如果没有其他选择,我可以使用它们。如果我必须使用它们,我更愿意将它们的功能静态链接到我的代码。

所需的目标二进制文件是:

  1. 适用于 Linux 和 Mac 目标的共享库 (.so),以及

  2. 适用于 Windows 的 DLL。

我不知道如何从头开始构建交叉编译器(以及相关的工具链)。我听说预构建的交叉编译器工具链可用于各种主机和目标组合,但我不知道在哪里可以找到它们,甚至不知道如何使用它们而不会在以后遇到运行时崩溃/核心转储,因为指针模型的细微之处(LP64、LLP64 等)、指定错误或不充分的编译器开关、其他错误配置等。

到目前为止,我一直无法找到有关上述内容的相关和完整信息,而且我设法找到的任何一点点都分散在各处,我什至不确定是否我读过的所有内容都是完整的,甚至是正确的(完全适用于我的情况)。

我不是编译器专家,只是他们的普通用户。将不胜感激实现上述编译目标的信息。

【问题讨论】:

    标签: gcc compilation cygwin shared-libraries cross-compiling


    【解决方案1】:

    我想在 Linux 上为 Mac OsX 交叉编译一个库,我正在考虑imcross。该站点中的说明很简单,但是每次设置交叉编译环境时都必须修复很多东西,所以我不希望它会简单。你可以在网站上查看这个项目有一些限制,但这是我遇到的最好的。

    现在不是我的优先事项(在执行此任务之前我还有其他事情要做)我还没有设置交叉环境。我会在几天内完成。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-28
      • 2012-03-31
      • 1970-01-01
      • 2018-09-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多