【发布时间】:2013-12-07 02:06:38
【问题描述】:
我在 Linux 开发主机上有一组或多或少可移植的 C/C++ 源代码,我希望能够:
- 为 32 位和 64 位 Linux 目标编译
- 针对 32 位和 64 位 Windows 目标进行交叉编译
- 针对 32 位和 64 位 Mac 目标进行交叉编译
- 并且,理想情况下,没有任何运行时依赖于其他仿真 DLL,如
cygwin1.dll、MinGW 等,但如果没有其他选择,我可以使用它们。如果我必须使用它们,我更愿意将它们的功能静态链接到我的代码。
所需的目标二进制文件是:
适用于 Linux 和 Mac 目标的共享库 (.so),以及
适用于 Windows 的 DLL。
我不知道如何从头开始构建交叉编译器(以及相关的工具链)。我听说预构建的交叉编译器工具链可用于各种主机和目标组合,但我不知道在哪里可以找到它们,甚至不知道如何使用它们而不会在以后遇到运行时崩溃/核心转储,因为指针模型的细微之处(LP64、LLP64 等)、指定错误或不充分的编译器开关、其他错误配置等。
到目前为止,我一直无法找到有关上述内容的相关和完整信息,而且我设法找到的任何一点点都分散在各处,我什至不确定是否我读过的所有内容都是完整的,甚至是正确的(完全适用于我的情况)。
我不是编译器专家,只是他们的普通用户。将不胜感激实现上述编译目标的信息。
【问题讨论】:
标签: gcc compilation cygwin shared-libraries cross-compiling