如何解决此问题:libm.so.6:找不到版本“GLIBC_2.29”,C/C++?

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 更新?

Zan*_*nte 7

将下面 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)