我正在运行 Mac OS X 10.5.8 并希望使用 GCC 4.1.2 为目标 CentOS 5.3 进行编译。我怎么能:
- 编译 GCC 4.1.2 工具链和相关工具?
- 使用该工具交叉编译目标 CentOS 5.3?
任何帮助是极大的赞赏!
我正在运行 Mac OS X 10.5.8 并希望使用 GCC 4.1.2 为目标 CentOS 5.3 进行编译。我怎么能:
任何帮助是极大的赞赏!
您最简单的解决方案是在虚拟机(例如 Sun VirtualBox)中运行 CentOS 5.3。这需要最少的设置,具有相当合理的开销(假设是 Intel Mac),并且您将能够实际测试和调试您正在构建的内容。
如果你真的坚持交叉编译,你必须构建一个交叉编译器。说明在此处和此处,但请注意:您可能需要几天时间才能正确完成,然后您仍然需要 VM 来测试结果,所以我认为这样做没有任何意义。
现在你可能可以用Docker for Mac来做,我没有测试它,因为我没有 mac。Docker 基本上创建了一个 Linux VM 并提供了一些不错的功能。
docker run -ti centos5.3 /bin/bash
(在官方Docker Hub中搜索您想要的目标)sudo yum group install "Development Tools"
)docker ps -a
以获取您的容器 IDdocker 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./configure
或make
orninja
或任何东西来做你的构建使用 docker,您可以使用您心爱的终端和您熟悉的主题和键盘映射。此外,它很可能会在启动和运行时消耗更少的资源。
如果您的应用程序是图形化的,并且您通过使用与其 GUI 的交互来测试它,我猜 VM 仍然是一个更好的选择(请参阅@employed-russian 的解决方案)。
使用 Cocotron 直接从 Xcode 进行交叉编译。这里有一个很好的入门指南:http: //blog.tlensing.org/tag/cocotron/
我努力让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
你可以使用crosstool-ng,或者如果你不想花太多时间来配置它,你可以下载一个预先配置好的交叉编译器,如Linaro。这是在 Mac OS X 中安装它的指南。