微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

arm-none-eabi-gdb:加载共享库时出错:libncurses.so.5:无法打开共享库文件:没有这样的文件或目录

如何解决arm-none-eabi-gdb:加载共享库时出错:libncurses.so.5:无法打开共享库文件:没有这样的文件或目录

Ubuntu 20.04.1 LTS 64位 3.36.3侏儒 英特尔酷睿i7-975H 31.2GiB内存 1.6 TB磁盘空间 我有流感疫苗 COVID-19:Neg,但我很无聊,无论如何都不会去任何地方...

我已经尝试了一些修复程序,其中包括

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

就像Schödinger文件...

解决方法

首先,由于您正在运行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-provided arm-none-eabi-gdb

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

sudo apt-get install libtinfo5 libncursesw5 libpython2.7

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。