尝试让 arm 工具链在我新安装的 ubuntu 22.04 上运行。修复一些符号链接后,libncurses
现在它抱怨缺少一些 python3.6 的共享库。
我确信对于普通的 ubuntu 用户来说,这是一个很容易修复的问题。我不是那种人。我已经通过删除并重新安装 python3 破坏了一个 ubuntu 安装。因此重新安装了所有内容,并准备进行第二次尝试
当我尝试运行gdb
客户端时出现错误消息:
bp@bp-legion:~/Downloads/gcc-arm-11.2-2022.02-x86_64-arm-none-eabi/bin$ ./arm-none-eabi-gdb --version
./arm-none-eabi-gdb: error while loading shared libraries: libpython3.6m.so.1.0: cannot open shared object file: No such file or directory
我的磁盘上有这个共享库:
/snap/gnome-3-28-1804/161/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0
我尝试将该库符号链接到 /usr/lib,但它抱怨
bp@bp-legion:~/Downloads/gcc-arm-11.2-2022.02-x86_64-arm-none-eabi/bin$ sudo ln -s -f /snap/gnome-3-28-1804/161/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0 /usr/lib/libpython3.6m.so.1.0
[sudo] password for bp:
bp@bp-legion:~/Downloads/gcc-arm-11.2-2022.02-x86_64-arm-none-eabi/bin$ ./arm-none-eabi-gdb --version
Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
Fatal Python error: Py_Initialize: Unable to get the locale encoding
ModuleNotFoundError: No module named 'encodings'
Current thread 0x00007f2017abfc00 (most recent call first):
Aborted (core dumped)
此时我上次重新安装了 python3,导致我的 ubuntu 安装被破坏了。
有人可以告诉我如何让最新的(11.20)arm 工具链在 ubuntu 22.04 上运行吗?
答案1
从以下网址下载并提取 Python 3.6.15 源代码Python 网站
准备必要的依赖项
sudo apt install -y make build-essential libssl-dev zlib1g-dev \ libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev \ libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev \ libgdbm-dev libnss3-dev libedit-dev libc6-dev
从解压的文件夹执行:
sudo ./configure --enable-optimizations -with-lto --enable-shared
sudo make sharedinstall
sudo ln -s /usr/local/lib/libpython3.6m.so.1.0 /usr/lib/x86_64-linux-gnu
答案2
您需要按照@Artem Maslov 在他之前的回答中建议的步骤进行操作,或者此处描述的步骤然后链接PYTHONPATH
到解压的 Python-3.x 文件夹的 Lib 文件夹。在构建下载的 Python-3.x 文件之前,请确保找到适合您版本的正确依赖项。
就我而言(我的 GDB 需要 Python 3.8),设置的命令PYTHONPATH
如下:
export PYTHONPATH=/usr/share/arm-gnu-toolchain-11.3.rel1-x86_64-arm-none-eabi/dependencies/Python-3.8.14/Lib
然后打
arm-none-eabi-gdb --version
如果安装顺利的话,GDB 就可以工作了。
祝你好运!!
答案3
您可以gdb-multiarch
在arm-none-eabi-gdb
Ubuntu22.04上使用。
sudo apt install -y gdb-multiarch
sudo ln -s /usr/bin/gdb-multiarch /usr/bin/arm-none-eabi-gdb
arm-none-eabi-gdb --version
GNU gdb (Ubuntu 12.1-0ubuntu1~22.04) 12.1
Copyright (C) 2022 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.