在Linux主机上交叉编译以实现各种目标

时间:2013-11-22 08:57:36

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

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

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

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

    2. 适用于Windows的DLL。

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

      到目前为止,我还没有找到有关上述内容的相关和完整信息,而且我能找到的任何东西都散落在我所有的地方。 ;我甚至不确定我读过的所有内容是完整的还是正确的(完全适用,不再少于我的情况)。

      我不是编译专家,只是他们的普通用户。希望获得实现上述编制目标的信息。

1 个答案:

答案 0 :(得分:1)

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

现在不是我的优先考虑(在执行此任务之前我还有其他事情要做)我还没有设置过crossenvironment。我会在几天后这样做。