【问题标题】:How do I get arm-elf-as on linux如何在 Linux 上获得 arm-elf-as
【发布时间】:2022-01-27 13:32:32
【问题描述】:

我正在尝试制作的 make 文件具有 arm-elf-as。我已经安装了 binutils gcc 所有我认为我不需要 arm-elf-as 的东西?我在哪里可以得到这个坏男孩。我在这里看到很多关于 arm-elf-gcc eabi 等的问题。它与 gnu 有关,也许我应该在 vm 上安装 gnu 机器。我也用谷歌搜索并想出了gas,或者我假设gnu as 和这个网页https://manned.org/arm-elf-as/f4fae7b2 但没有关于arm-elf-as 的说明。或者如何获得它。它的unbuntu,要制作的项目https://github.com/jeanthom/ibugger

好的,我想我在 /usr/bin 中发现了 AS 的问题,但是

NAME ?= flasher LS = ls.x

LIBGCC = /cygdrive/c/programme/gnuarm/lib/gcc/arm-elf/4.1.1/libgcc.a

更改为 LIBGCC = /usr/lib/gcc-cross/arm-linux-gnueabi/9/libgcc.a 但没有骰子。

【问题讨论】:

  • 发布 make 文件以及操作系统信息可能会有所帮助。就目前而言,没有上下文。
  • 最新的 ubuntu ive 尝试了几个 linux 发行版,它的 arm-elf 交叉编译为 CROSS ?= arm-elf- AS = $(CROSS)as CC = $(CROSS)gcc LD = $(CROSS )ld NM = $(CROSS)nm OBJCOPY = $(CROSS)objcopy CFLAGS += -Os -W -Wall -ffreestanding -fomit-frame-pointer LDFLAGS+= -T$(LS) $(LIBGCC)
  • 好的好的!我建议使用上述评论编辑 OP,以澄清问题空间。
  • sudo apt-get -y install gcc-arm-none-eabi binutils-arm-none-eabi (如果你不想要 gcc,则只需要 binutils。你可以从 arm 更改你的 makefile- elf-whatever 到 arm-none-eabi-whatever。或者,您可以从 gnu 网站获取 binutils 并从源代码构建
  • @old_timer 有没有办法不编辑 make 文件,因为我什至宁愿安装可以在 vm 上使用(as)的操作系统,而不是这样做

标签: linux arm cross-compiling


【解决方案1】:

你可以简单

sudo apt-get -y install binutils-arm-none-eabi 

并将您的 makefile 从 arm-elf-whatever 更改为 arm-none-eabi-whatever,因为 arm-elf 构建通常已成为过去。

或者你可以从源代码构建,我刚刚测试过,构建 arm-elf 没问题

build_arm-elf:

# Usage
# sudo ./build_arm-elf

# Setup vars
export TARGET=arm-elf
export PREFIX=/opt/gnuarmelf
export PATH=$PATH:$PREFIX/bin
export JN='-j 4'

export BINUVER=2.37

rm -rf build-*
rm -rf binutils-*

# Get archives
wget https://ftp.gnu.org/gnu/binutils/binutils-$BINUVER.tar.gz

# Extract archives
tar xf binutils-$BINUVER.tar.gz

# Build binutils
mkdir build-binutils
cd build-binutils
../binutils-$BINUVER/configure --target=$TARGET --prefix=$PREFIX
echo "MAKEINFO = :" >> Makefile
make $JN all
sudo make install

如果需要,可以将 BINUVER 更改为旧版本。

PATH=/opt/gnuarmelf/bin:$PATH

那么你可以使用 arm-elf-as 或 arm-elf-ld 等。

【讨论】:

  • LIBGCC = /cygdrive/c/programme/gnuarm/lib/gcc/arm-elf/4.1.1/libgcc.a 这就是它所指向的我试过 LIBGCC = /usr/lib/gcc -cross/arm-linux-gnueabi/9/libgcc.a 但没有骰子。也许那仍然是错误的?
  • 也因为它是一个不同的编译器,我可能需要将它们编辑成一些东西:CROSS ?= arm-elf- AS = $(CROSS)as CC = $(CROSS)gcc LD = $(CROSS) ld NM = $(CROSS)nm OBJCOPY = $(CROSS)objcopy
  • 你提到了gnu汇编器,你也需要gcc吗?
  • 取决于具体的makefile,它们如何工作以及它们是否使用环境变量......但如果是这样,那么是的,这将是一个开始的地方。这是基本的编程内容,如果你在这里苦苦挣扎(Makefile 不是工具),我怀疑你也会为你正在构建的东西而苦苦挣扎。
  • 为了测试它的工作,我可以在终端输入 arm-elf-as 吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-04
  • 2011-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多