1

Ubuntu 20.04.1 LTS 64 位 3.36.3 Gnome Intel core-i7-975H 31.2GiB 内存 1.6 TB 磁盘空间 有我的流感疫苗 COVID-19:否定,但我很无聊,反正哪儿也不去...

我尝试了一些修复,包括这个:

消息“无法运行 arm-none-eabi-gdb:找不到 libncurses.so.5”

但没有爱。我仍然继续收到同样的错误。我正在尝试使用 Arduino IDE v1.8.13 刷新软件设备。GDB版本在这里:

arm-none-eabi-gdb --version

libncurses 版本在这里:

dpkg -l '诅咒' | grep '^ii'

我不知道还有什么可以尝试或检查的。有人会对进一步检查有什么想法吗?

@MarkPlotnick - 我跑了 ls -ld $(dpkg -S libncurses.so.5),结果:

ls -ld $(dpkg -S libncurses.so.5)

然后我通过尝试安装它来专门检查是否安装了 libncurses5:i386,它显示:

libncurses5:i386 is already the newest version (6.2-0ubuntu2).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

我又试了一次,有点不同:

sudo apt-get -y install libc6:i386 libstdc++6:i386 libncurses5:i386 libudev1:i386

然后 libudev1:i386 是唯一要安装的软件包。但是,如果我尝试找到该文件:

~$ locate libncurses5:i386

然后我在这个位置得到五个文件:

/var/lib/dpkg/info/libncurses5:i386.list
/var/lib/dpkg/info/libncurses5:i386.md5sums
/var/lib/dpkg/info/libncurses5:i386.shlibs
/var/lib/dpkg/info/libncurses5:i386.symbols
/var/lib/dpkg/info/libncurses5:i386.triggers

就像薛定谔档案...

4

1 回答 1

0

首先,由于您运行的是 64 位版本的 Ubuntu,您应该确认您安装了Arduino IDE v1.18.13的 Linux 64 位版本。如果不是这种情况,这可以解释为什么安装 i386 软件包不能解决您的问题 - 如果没有,我强烈建议您删除 Linux 32 位版本,并安装 Linux 64 位版本。

可以通过执行以下命令来完成此验证:

file ~/.arduino15/packages/arduino/tools/arm-none-eabi-gcc/4.8.3-2014q1/bin/arm-none-eabi-gdb

您应该会看到如下内容:

/home/user/.arduino15/packages/arduino/tools/arm-none-eabi-gcc/4.8.3-2014q1/bin/arm-none-eabi-gdb: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.8, stripped

这里的重要信息是ELF 64-bit LSB executable

libncurses.so.5当然缺少64 位版本:

ldd ~/.arduino15/packages/arduino/tools/arm-none-eabi-gcc/4.8.3-2014q1/bin/arm-none-eabi-gdb
        linux-vdso.so.1 (0x00007ffccf1ed000)
        libncurses.so.5 => not found
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f68fa317000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f68fa125000)
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f68fa11f000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f68fa482000)

可以使用以下命令安装它:

sudo apt-get install libncurses5

运行后sudo ldconfig

ldd  ~/.arduino15/packages/arduino/tools/arm-none-eabi-gcc/4.8.3-2014q1/bin/arm-none-eabi-gdb
        linux-vdso.so.1 (0x00007ffcc41f5000)
        libncurses.so.5 => /lib/x86_64-linux-gnu/libncurses.so.5 (0x00007f890c00d000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f890bebe000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f890bccc000)
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f890bcc6000)
        libtinfo.so.5 => /lib/x86_64-linux-gnu/libtinfo.so.5 (0x00007f890bc98000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f890c04f000)

GDB现在应该可以正常工作:

~/.arduino15/packages/arduino/tools/arm-none-eabi-gcc/4.8.3-2014q1/bin/arm-none-eabi-gdb -tui

Arduino 提供的 arm-none-eabi-gdb

请注意,GNU Arm Embedded Toolchain也可能在 Ubuntu 20.04.1 上发生相同类型的问题。可以通过安装缺少的软件包来修复它:

sudo apt-get install libtinfo5 libncursesw5 libpython2.7

于 2020-09-24T15:23:45.183 回答