问题描述
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版本在这里:
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
请注意,GNU Arm Embedded Toolchain可能在Ubuntu 20.04.1上也可能发生相同的问题。可以通过安装缺少的软件包来解决:
sudo apt-get install libtinfo5 libncursesw5 libpython2.7