当前位置: 首页 > 面试题库 >

用于ARM体系结构的Linux交叉编译

谷梁镜
2023-03-14
问题内容

我对在x86主机上为ARM目标交叉编译Linux内核感兴趣。您推荐一些好的做法吗?您认为哪个是最好的交叉编译套件?您是否建立了自定义的交叉编译环境?如果是,您有什么建议?这是个好主意吗?


问题答案:

我为ARM / Linux工具使用了两种方法。最简单的方法是直接下载预构建的工具链。
优点 :它可以正常工作,您可以继续进行项目中有趣的部分。
缺点 :您选择了他们所选择的gcc / binutils / libc版本

如果以后对您来说很重要,请查看crosstool-ng。该项目是与Linux内核配置应用程序相似的配置工具。设置要构建的gcc,binutils,libc(GNU或uCLibc),线程和Linux内核的版本,然后用crosstool-
ng完成其余的工作(即下载tar球,配置工具并进行构建)。
:你得到你的配置过程中选择的到底是什么
精读 :你得到你的配置过程中选择的到底是什么

这意味着您对编译器/ binutil /
libc及其相关功能/缺点/错误的选择承担全部责任。另外,如评论中所述,在选择binutils,C库等版本时会涉及​​一些“痛苦”,因为并非所有组合都必须协同工作甚至无法构建。

一种混合方法可能是从预先构建的工具开始,然后在必要时通过crosstool-ng用自定义解决方案替换它们。

更新
:答案最初是使用CodeSourcery工具作为预构建工具链的示例。可从Mentor
Graphics免费下载用于ARM的CodeSourcery工具,但现在将它们称为Sourcery CodeBench,必须从Mentor
Graphics购买。现在,其他选项包括Linaro以及来自Android,Ubuntu等其他发行版的工具。



 类似资料:
  • 问题内容: 我有一个运行Linux Ubuntu的Freescale(i.MX53)的ARM Coretex-A8开发板。它可以正常启动,我可以使用鼠标/键盘/终端访问系统。 首先,我想让一个应用程序在主机OS内的板上运行,就像在PC上运行应用程序一样。 我的问题是,使用基于cc的YAGARTO之类的工具链来编译我的测试程序,因为我没有定义任何启动脚本,所以最终在链接方面遇到麻烦。 我发现了许多有

  • 我正在尝试为Android ARM交叉编译llvm/clang。 我也尝试了这里列出的所有步骤,以及在这里找到的指南,但没有运气。 任何帮助都将不胜感激。谢了! 编辑:现在我正在使用以下命令: 错误消息:CLANG36++:警告:编译过程中未使用参数:'-bundle'/users/paschalis/androide/toolchains/gcc/bin/../lib/gcc/arm-linux

  • 我试图交叉编译一个linux系统的简单hello world程序。 我有以下资料: null 我试图运行/lib/libc.so.0来获取版本信息,但出现了一个分段错误。它似乎用-static编译解决了这个问题。所以我想这是libc库的问题。谢谢你的帮助。

  • 本文档说明如何在kali linux上配置ARM交叉编译环境,是我们多份关于”定制ARM镜像”的文档的起点. 开发机的配置 编译内核生成镜象通常需要大量硬盘空间.确保你的开发机至少有50G可用硬盘空间以及足够的内存,CPU不要太差. 安装依赖 先安装ARM交叉编译所需的依赖. apt-get install git-core gnupg flex bison gperf libesd0-dev b

  • 问题内容: 到目前为止,我已经在ubuntu系统上安装了所有交叉编译软件包,但是遇到了问题,需要一些帮助。 这是我需要交叉编译的目标计算机。编译时应使用哪些标志? 问题答案: 给出以下列表, gcc-4.7-aarch64-linux-gnu-GNU C编译器 gcc-4.7-arm-linux-gnueabi-GNU C编译器 gcc-4.7-arm-linux-gnueabi-base-GCC