项目场景:
系统环境:ubuntu24.04
编译器:arm-none-eabi-
版本:arm-gnu-toolchain-13.2.rel1-x86_64-arm-none-eabi
下载地址:
新版本(10.3-2021-10之后):https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads
旧版本(10.3-2021-10之前):https://developer.arm.com/downloads/-/gnu-rm
使用情况:
在通过vs code中的插件cortex-debug以及stm32cubeide进行调试的时候无法开启调试
问题描述
stm32cubeide报错如下
vs code报错如下
这个报错显示不全;我在第一次启动debug的时候,提示了缺少libncursesw.so.5
基于以上的报错以及提示通过arm-none-eabi-gdb --version查看
显示缺少支持库:libncursesw.so.5
然后通过ldd arm-none-eabi-gdb发现该可执行文件的以来缺少了两个库(这两个库在安装libncursesw5之后就都覆盖了)
安装libncursesw5
sudo apt install libncursesw5
显示无法定位软件包
通过apt-cache search查询该包
显示的软件包并不是我们想要的libncursesw5
添加软件源
ubuntu 24.04
sudo vim /etc/apt/sources.list.d/ubuntu.sources
ubuntu 24.04之前的版本
sudo vim /etc/apt/sources.list
在文件末尾添加
deb http://archive.ubuntu.com/ubuntu/ trusty main universe restricted multiverse
至此再执行:
sudo apt install libncursesw5
即可成功安装libncursesw.so.5
arm-none-eabi-gdb与python版本不匹配
ubuntu 24.04预装的python为3.12
而该版本的gdb需要python3.8支持
问题原因:
通常由于python无法找到特定的库,可能是因为缺少了某些依赖库或者环境变量配置错误;
查看python3的依赖
安装python3.8
通过ppa:deadsnakes/ppa显示当前系统的仓库并不提供python3.8的安装包
所以此处通过源码编译安装
python源码编译安装
下载地址:
https://www.python.org/downloads/
下载对应版本的source tar包
依赖安装
参考:https://devguide.python.org/getting-started/setup-building/#install-dependencies
通过nproc查看cpu的线程数量
cd python-3.8.9切换当前路径到python源码目录下
./configure --prefix=/home/summer/Software/python --enable-optimizations
--prefix设置安装目录
--enable-optimizations 运行测试来优化python二进制文件,但会增加编译时间
该类参数可以通过./configure --help进行查看详情
make -j 线程数量 进行编译
根据下图中的Makefile内容,因为ubuntu24.04默认安装了python3.12
所以我通过make altinstall替代make install进行安装,不会覆盖原先的版本
编译提示缺少库
安装依赖
sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev wget
编译完成之后
sudo make altinstall