安装交叉工具链以在 Debian 上构建 ARM 二进制文件

安装交叉工具链以在 Debian 上构建 ARM 二进制文件

我尝试安装交叉工具链,以便可以在 amd64(Debian 测试“jessie”)上为我的 ARM 系统构建 Linux 内核。我有这个条目sources.list

deb http://www.emdebian.org/debian sid main

当我尝试安装时gcc-4.7-arm-linux-gnueabi,我得到一个错误:

cc-4.7-arm-linux-gnueabi :取决于:libgomp1-armel-cross (>=4.7.2-5),但不会安装

libgomp1-armel-cross反过来又取决于gcc-4.8-base-armel-cross这是任何地方都找不到的。

在某些时候,我确实设法从同一个存储库安装这些交叉构建工具,甚至在几周前构建了一个现在可以在这些 ARM 系统上运行的内核。该存储库中有什么东西损坏了吗?我尝试了其他几个版本的 GCC,但仍然遇到同样的问题。

一个不理想的解决方案是在 Ubuntu 12.04 VM 中交叉构建。该发行版在其官方存储库中提供了 ARM 交叉编译器。

答案1

stable建议在大多数情况下使用 Emdebian 存储库,因为存储库中可能存在未内置的实用程序、被撤回的包等。如果您想确保所有库都具有正确的依赖项,我建议stabletesting因为他们不太可能有依赖性问题或有一些无聊的事情。

答案2

Debian 现在正式包含跨工具链,尽管它们不会成为下一个稳定版本 (8.0) 的一部分。提供虚拟包

答案3

稳定没有帮助。 4.7 - 4.8 的不一致仍然存在。从 4.4 版(大约)开始,这种不一致就一直存在gcc

答案4

我建议以“Linux 方式”做事,这对我来说意味着尽可能少的自动配置。我将从经销商的站点下载所需的工具链,并在项目的工作目录中设置一个 .CC 文件。您的 CC 文件应如下所示:

export PATH=< PATH-TO-TOOLCHAIN-BIN-FOLDER>:${PATH}
export CROSS_COMPILE=< TOOLCHAIN PREFIX` i.e "arm-none-gnueabi-" (the last "-" is important)
export ARCH=< ARCHITECTURE>

完成此操作后,在运行任何编译之前,发出“source .CC”,然后像平常一样编译,即“gcc/g++/ld……”。编译将自动使用工具链(您将在编译的输出中看到正在使用工具链)

相关内容