Use*_*ser 7 c c++ glibc libs raspberry-pi4
当我尝试在 RPI CM4 上执行我的 C++ 演示应用程序时,该应用程序是在 Ubuntu 操作系统上交叉编译的:
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.1 LTS
Release: 20.04
Codename: focal
Run Code Online (Sandbox Code Playgroud)
这是我在 RPI 中的错误:
root@rpi-cm4:/home/pi# ./demoApp
./demoApp: /lib/arm-linux-gnueabihf/libm.so.6: version `GLIBC_2.29' not found (required by ./demoApp)
./demoApp: /lib/arm-linux-gnueabihf/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required by ./demoApp)
Run Code Online (Sandbox Code Playgroud)
有关我的 RPI 的一些信息:
# lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description: Raspbian GNU/Linux 10 (buster)
Release: 10
Codename: buster
# uname -a
Linux rpi-cm4 5.15.65-v7l+ #1582 SMP Mon Sep 5 15:34:37 BST 2022 armv7l GNU/Linux
# ldd --version
ldd (Debian GLIBC 2.28-10+rpi1) 2.28
# ldd --verbose /lib/arm-linux-gnueabihf/libm.so.6
linux-vdso.so.1 (0xbefe7000)
/usr/lib/arm-linux-gnueabihf/libarmmem-${PLATFORM}.so => /usr/lib/arm-linux-gnueabihf/libarmmem-v7l.so (0xb6e4d000)
libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0xb6cec000)
/lib/ld-linux-armhf.so.3 (0xb6ee4000)
Version information:
/lib/arm-linux-gnueabihf/libm.so.6:
ld-linux-armhf.so.3 (GLIBC_2.4) => /lib/ld-linux-armhf.so.3
libc.so.6 (GLIBC_PRIVATE) => /lib/arm-linux-gnueabihf/libc.so.6
libc.so.6 (GLIBC_2.4) => /lib/arm-linux-gnueabihf/libc.so.6
/usr/lib/arm-linux-gnueabihf/libarmmem-v7l.so:
libc.so.6 (GLIBC_2.4) => /lib/arm-linux-gnueabihf/libc.so.6
/lib/arm-linux-gnueabihf/libc.so.6:
ld-linux-armhf.so.3 (GLIBC_2.4) => /lib/ld-linux-armhf.so.3
ld-linux-armhf.so.3 (GLIBC_PRIVATE) => /lib/ld-linux-armhf.so.3
Run Code Online (Sandbox Code Playgroud)
如何进行 GLIBC 更新?
将下面 talsim 的答案修改为对我有用的答案。
wget -4c https://ftp.gnu.org/gnu/glibc/glibc-2.29.tar.gz
tar -zxvf glibc-2.29.tar.gz
cd glibc-2.29
mkdir build_dir
cd build_dir
sudo ../configure --prefix=/opt/glibc
sudo make
sudo make install
Run Code Online (Sandbox Code Playgroud)
tal*_*sim -2
您可以尝试从他们的官方网站下载 glibc 并安装它:
wget -4c https://ftp.gnu.org/gnu/glibc/glibc-2.29.tar.gz
tar -zxvf glibc-2.29.tar.gz
cd glibc-2.29
./configure --prefix=/opt/glibc
make
make install
Run Code Online (Sandbox Code Playgroud)