如何在Ubuntu 18.04 (Bionic Beaver)上安装"gdb-arm-none-eabi"?

在之前的Ubuntu版本中,ARM Cortex处理器的GDB是gdb-arm-none-eabi软件包的一部分。在https://packages.ubuntu.com/上搜索Ubuntu 18.04的gdb-arm-none-eabi未返回任何结果。我是否遗漏了什么或者为什么不再有适用于ARM的GDB呢?

只是一般的注意事项:ARM不再通过PPA分发他们的工具(在Launchpad上的最新版本是6.3.1,但实际上在写作时他们已经更新到了10.2.1),你必须从他们的网站上获取。这很烦人,尤其是如果你没有意识到这一点! ARM的公告在这里:https://launchpad.net/gcc-arm-embedded 查看这个答案以获取完整的详细信息:https://askubuntu.com/a/1243405/498719 - SusanW
Ubuntu是基于Debian的,我在Debian的软件包跟踪器上看到该软件包已不再维护:https://tracker.debian.org/pkg/gdb-arm-none-eabi 因此它已从Debian中移除,也因此从Ubuntu中移除。这真是令人遗憾。我也需要它... - 71GA
7个回答

就我所见,有两个选择:
1. 安装旧版本(正如Chaos所指出的) 2. 安装gdb-multiarch,这对我来说实际上是有效的。

6gdb-multiarch 对我来说很有效。 - John Lindgren

我有同样的问题,然后继续搜索了一些。看起来现代的GDB不再需要特定架构的GDB。只需使用GDB即可。
(在我的旧版16.04工作站上似乎也可以工作。这些年来我一直在输入arm-none-eabi-gdb,而只需使用"gdb"就可以了!.....)

2你在Ubuntu上使用gdb还是gdb-multiarch? - user1729210
12普通的"gdb"不起作用(会产生"warning: Architecture rejected target-supplied description"的警告),你需要使用"gdb-multiarch"。 - John Lindgren

安装完 gdb-multiarch 后,您可能希望添加以下符号链接:
ln -s /usr/bin/gdb-multiarch /usr/bin/arm-none-eabi-gdb

能够执行的内容:
arm-none-eabi-gdb

我在Ubuntu 18.04上遇到了同样的问题。 要在Ubuntu 18.04上安装"gcc-arm-none-eabi",请执行以下操作:
sudo apt-get install gcc-arm-none-eabi

使用此命令,系统将所有二进制文件安装到/usr/bin文件夹中。但是,并非所有的二进制文件都在这里找到,所以我正在使用以下替代方法。这对我来说有效。
如果您想使用下面的arm-none-eabi实用程序,
arm-none-eabi-gdb arm-none-eabi-as arm-none-eabi-objcopy
gnu-mcu-eclipse/arm-none-eabi-gcc下载ARM-GCC工具链。
我已经为我的x64系统下载了"gnu-mcu-eclipse-arm-none-eabi-gcc-6.3.1-1.1-20180331-0618-centos64"。
成功下载后,解压缩文件。前往

/gnu-mcu-eclipse-arm-none-eabi-gcc-6.3.1-1.1-20180331-0618-centos64/gnu-mcu-eclipse/arm-none-eabi-gcc/6.3.1-1.1-20180331-0618/bin

将GDB和objcopy复制到/usr/bin目录中:
sudo cp arm-none-eabi-gdb /usr/bin/

sudo cp arm-none-eabi-objcopy /usr/bin/

复制完成后,您可以使用GCC和GDB。

运行:

sudo apt install gdb-multiarch
gdb-multiarch my.elf

4这个回答是对这个现有答案的复制:https://askubuntu.com/a/1033056/ - karel

下载ARM预编译工具链的软件包,点击download下载"Linux 64位"文件,并将其bin目录添加到您的路径中。以下是一种方法:
$ cd /usr/local/share
$ tar xjf ~/Downloads/gcc-arm-none-eabi-9-2019-q4-major-x86_64-linux.tar.bz2

然后,使用您选择的编辑器将以下内容追加到适当的 shell 初始化文件中的 PATH(例如 ~/.zshrc~/.bashrc):
export PATH=$PATH:$HOME/local/gcc-arm-none-eabi-7-2017-q4-major/bin

arm-none-eabi-gcc --version
arm-none-eabi-g++ --version
arm-none-eabi-gdb --version
arm-none-eabi-size --version

我在Synaptic软件包管理器中搜索并找到了该软件包。 只需安装synaptic并搜索即可。 您可以在软件商店中找到它,或者通过sudo apt-get install synaptic命令安装。

1你确定你使用的是18.04版本吗?因为在这里没有显示任何结果:https://packages.ubuntu.com/search?searchon=contents&keywords=gdb-arm-none-eabi&mode=exactfilename&suite=bionic&arch=any,也无法通过apt-cache search gdb-arm-none-eabi找到。 - user1729210
是的,我只是两天前安装了它。你尝试在 Synaptic 中搜索了吗? - Chaos
1这是一台无头机器,所以没有X环境 -> 没有synaptic。另外,“apt-cache search gdb-arm-none-eabi”应该列出该软件包,但实际上没有。你是否尝试通过packages.ubuntu.com在线搜索(我之前评论中的链接指向了已预选bionic版本)?你在synaptic中找到的软件包版本是多少? - user1729210
哦,是的,我现在明白了! 我已经添加了可靠的软件源,所以我在Synaptic中找到了它。 你也可以这样做,然后使用apt-get来安装这个软件包。 我在终端中尝试了一下,并找到了这个软件包。 版本号是7.6.50.20131218-0ubuntu1+1。 - Chaos