2013-11-22 21 views
2

我有一套或多或少可移植的C上交叉编译/ C++源坐在一个Linux开发主机上,我希望能够:Linux主机的各种目标

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

所期望的目标二进制是:

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

  2. 为Windows DLL。

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

我到目前为止一直无法找到上述的相关和完整的信息,我找到的东西已经遍布各处,我甚至都不知道我读到的所有东西是完整的还是正确的(完全适用,对我的情况不会更少)。

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

回答

1

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

现在不是我的优先考虑事项(在执行此任务之前,我还有其他的工作要做)我还没有设置交叉环境。我将在几天的时间内这样做。