【问题标题】:arm-none-eabi-gdb: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directoryarm-none-eabi-gdb:加载共享库时出错:libncurses.so.5:无法打开共享对象文件:没有这样的文件或目录
【发布时间】:2021-01-10 19:57:22
【问题描述】:

Ubuntu 20.04.1 LTS 64 位 3.36.3 侏儒 英特尔酷睿-i7-975H 31.2GiB 内存 1.6 TB 磁盘空间 有我的流感疫苗 COVID-19:否定,但我很无聊,反正哪儿也不去……

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

Message "Unable to run arm-none-eabi-gdb: cannot find libncurses.so.5"

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

arm-none-eabi-gdb --version

libncurses 版本在这里:

dpkg -l 'ncurses' | 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

就像薛定谔档案...

【问题讨论】:

  • 请用您问题中代码格式的文本输出替换指向图像的链接 - 为此使用“双括号”菜单项。
  • 可以运行ls -ld $(dpkg -S libncurses.so.5)查看文件是否存在吗?
  • @Frant - 感谢 ProTip,但规则是“您需要至少 10 个声望才能发布图像”。所以我可以发布图像的唯一方法就是像我一样链接它们。抱歉,这是一个小布希联盟,但我能做到的最好。
  • @MarkPlotnick - 我在帖子中回复了你。我认为你正在做某事。似乎这些文件在那里,它们不在那里......:/
  • @Carbon:我的观点是:可以提供文字的时候不要提供图片。

标签: arm gdb shared-libraries ncurses arm-none-eabi-gcc


【解决方案1】:

首先,由于您运行的是 64 位版本的 Ubuntu,您应该确认您安装了 Linux 64 位版本的Arduino IDE v1.18.13。如果不是这种情况,这可以解释为什么安装 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

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

sudo apt-get install libtinfo5 libncursesw5 libpython2.7

【讨论】:

  • 它安装了 libncursew5 和 libpython2.7,然后 apt 更新,但还没有修复。
  • 1) 您是否运行了上面的确切命令?我的全新系统需要 libtinfo5。 2)您是否收到错误消息?如果有,是哪一个?
  • 嗨@Carbon,如果这个或任何答案已经解决了您的问题,请考虑通过单击复选标记接受它。这向更广泛的社区表明您已经找到了解决方案,并为回答者和您自己提供了一些声誉。没有义务这样做。
  • 嘿@Frant。谢谢,但这些并没有解决问题。我目前正在重新安装 Ubuntu 20.04 并使用 Arduino IDE 从头开始​​......我会回复的。应该是周末吧我一定是破坏了符号链接或其他东西。
  • 和用户 Carbon left the building 8 days later.
猜你喜欢
  • 2022-07-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-24
  • 2015-06-07
  • 2018-07-18
  • 2021-02-11
  • 1970-01-01
相关资源
最近更新 更多