17

我正在运行 Mac OS X 10.5.8 并希望使用 GCC 4.1.2 为目标 CentOS 5.3 进行编译。我怎么能:

  1. 编译 GCC 4.1.2 工具链和相关工具?
  2. 使用该工具交叉编译目标 CentOS 5.3?

任何帮助是极大的赞赏!

4

5 回答 5

14

您最简单的解决方案是在虚拟机(例如 Sun VirtualBox)中运行 CentOS 5.3。这需要最少的设置,具有相当合理的开销(假设是 Intel Mac),并且您将能够实际测试调试您正在构建的内容。

如果你真的坚持交叉编译,你必须构建一个交叉编译器。说明在此处此处,但请注意:您可能需要几天时间才能正确完成,然后您仍然需要 VM 来测试结果,所以我认为这样做没有任何意义。

于 2009-11-22T06:44:14.790 回答
4

现在你可能可以用Docker for Mac来做,我没有测试它,因为我没有 mac。Docker 基本上创建了一个 Linux VM 并提供了一些不错的功能。

安装 docker 并准备构建映像。

  • 安装泊坞窗
  • 启动一个新容器docker run -ti centos5.3 /bin/bash(在官方Docker Hub中搜索您想要的目标)
  • 安装您想要的 gcc 版本(类似sudo yum group install "Development Tools"
  • 退出你的容器
  • 运行docker ps -a以获取您的容器 ID
  • 将您的容器备份为基本构建映像docker commit [id] centos:build

进行构建

现在您可以将您创建的构建环境用于 CentOS 构建。

  • 要在安装工作目录的同时启动构建环境,您可以使用类似docker run -it --mount type=bind,source=$(pwd),target=/mnt centos:build /bin/sh -c "cd /mnt && bash"
  • 然后运行gcc ...​​or./configuremakeorninja或任何东西来做你的构建
  • 如果你写了一些,你也可以在这里运行自动化测试

Docker 与虚拟机

使用 docker,您可以使用您心爱的终端和您熟悉的主题和键盘映射。此外,它很可能会在启动和运行时消耗更少的资源。

如果您的应用程序是图形化的,并且您通过使用与其 GUI 的交互来测试它,我猜 VM 仍然是一个更好的选择(请参阅@employed-russian 的解决方案)。

于 2019-01-07T23:23:17.070 回答
3

使用 Cocotron 直接从 Xcode 进行交叉编译。这里有一个很好的入门指南:http: //blog.tlensing.org/tag/cocotron/

于 2012-09-28T13:28:54.180 回答
3

我努力让crosstool-ng在 OSX 10.9 for x86_64 Linux 上构建。我使用了Jeff Preshing 撰写的关于如何构建 gcc 交叉编译器的非常有用的帖子以及他的脚本作为对我有用的脚本的基础。在我的 OSX 版本上编译 glibc 时,他在链接中的脚本不起作用(对于那些从 OSX 交叉编译到 Linux 的人来说,这似乎是一个非常常见的抱怨)。

我的脚本在这里:https ://github.com/johnlondon/Cross-compile-toolchain-for-linux-on-OSX

于 2016-08-26T18:16:55.510 回答
1

你可以使用crosstool-ng,或者如果你不想花太多时间来配置它,你可以下载一个预先配置好的交叉编译器,如Linaro。这是在 Mac OS X 中安装它的指南。

于 2016-03-25T20:16:19.433 回答