【问题标题】:Fedora 37 missing libncurses.so.5 (for arm-none-eabi-gdb)Fedora 37 缺少 libncurses.so.5(用于 arm-none-eabi-gdb)
【发布时间】:2022-12-31 08:17:45
【问题描述】:
将我的 Fedora 更新到 37 后,我无法通过 arm-none-eabi-gdb 工具调试 stm32。
使用带有 debug-cortex 扩展的 vscode 用户不会收到任何调用此问题的错误,只是编译后调试不会启动。
arm-none-eabi-gdb: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory
我在bugzilla.redhat.com 中发现了描述的错误
“在 Fedora 中删除了 ncurses-compat-libs 子包 [...]”(这是确保 libncurses.so.5)
我最终找到了解决方案。一整天后,我尝试从我发现的其他发行版安装 rpm(没有效果)和数小时的搜索。下面的解决方案在回答.
【问题讨论】:
标签:
stm32
fedora
ncurses
gdbserver
【解决方案1】:
我的结论
据我了解,某些最新版本的 ncurses 库不再使用 arm-none-eabi-gdb 中使用的子模块。此外,Fedoras dnf 包管理器不再支持此子模块。
我不是 CubeMX 用户,但我很好奇这个软件也有问题吗?
我最终找到的解决方案是为错过的库制作symbolic link。这可能不是完美的解决方案,但对我来说效果很好
解决方案
- 检查 arm-none-eabi-gdb 的位置
which arm-none-eabi-gdb
/home/USERNAME/Embedded/arm-gcc/gcc-arm-none-eabi-10.3-2021.10/bin/arm-none-eabi-gdb
- 检查 arm-none-eabi-gdb 的共享库依赖
ldd /home/USERNAME/Embedded/arm-gcc/gcc-arm-none-eabi-10.3-2021.10/bin/arm-none-eabi-gdb
linux-vdso.so.1 (0x00007ffe9d0ff000)
libncurses.so.5 => not found
libtinfo.so.5 => not found
libdl.so.2 => /lib64/libdl.so.2 (0x00007f6bf5166000)
libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f6bf4e00000)
libm.so.6 => /lib64/libm.so.6 (0x00007f6bf5086000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f6bf5064000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f6bf505f000)
libc.so.6 => /lib64/libc.so.6 (0x00007f6bf4c23000)
/lib64/ld-linux-x86-64.so.2 (0x00007f6bf5183000)
- 为遗漏的库创建符号链接
cd /lib64; sudo ln libtinfo.so.6 libtinfo.so.5; sudo ln libncurses.so.6 libncurses.so.5
- 检查
arm-none-eabi-gdb