我正在运行Mac OS X 10.5.8并希望使用GCC 4.1.2编译目标CentOS 5.3。我怎么能:
非常感谢任何帮助!
答案 0 :(得分:9)
您最简单的解决方案是在VM中运行CentOS 5.3(例如Sun VirtualBox)。这需要最少的设置,具有相当合理的开销(假设是Intel Mac),并且您将能够实际测试和调试您正在构建的内容。
如果您真的坚持交叉编译,则必须构建交叉编译器。说明是here和here,但请注意:它可能需要几天才能正确完成,然后您仍需要VM来测试结果,所以我没有看到这样做的任何意义。
答案 1 :(得分:3)
使用Cocotron直接从Xcode进行交叉编译。这里有一个很好的入门指南:http://blog.tlensing.org/tag/cocotron/
答案 2 :(得分:1)
您可以使用crosstool-ng,或者如果您不想花太多时间进行配置,可以下载预配置的交叉编译器,如Linaro。 这是guide用于在Mac OS X中安装它。
答案 3 :(得分:1)
我努力让 crosstool-ng 在x86_64 Linux的OSX 10.9上构建。我使用Jeff Preshing撰写的how to build a gcc cross-compiler非常有用的帖子和他的脚本here作为一个适合我的脚本的基础。在我的OSX版本上编译glibc时,他在链接中的脚本不起作用(对于从OSX到Linux的交叉编译,这似乎是一个非常普遍的抱怨)。
我的脚本在这里:https://github.com/johnlondon/Cross-compile-toolchain-for-linux-on-OSX
答案 4 :(得分:1)
如今,您可能可以使用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
获取您的容器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 ...
或./configure
或make
或ninja
或进行构建的任何方法借助docker,您可以将心爱的终端与熟悉的主题和键盘映射一起使用。此外,它很可能会消耗更少的启动和运行资源。
如果您的应用程序是图形应用程序,并且您通过与它的GUI交互使用它进行了测试,那么我猜VM仍然是一个更好的选择(请参阅@ employed-russian的解决方案)。