libstdc++ 错误:未找到'GLIBCXX_3.4.22'

libstdc++ Error: 'GLIBCXX_3.4.22' not found

本文关键字:GLIBCXX 错误 libstdc++      更新时间:2023-10-16

我试图使用arm-linux-gnueabihf编译器为Raspberry Pi交叉编译dlib。

在成功运行cmakemake -j4后,我运行了python setup.py bdist_wheel --repackage,它创建了必要的.so文件,后来我使用scp将其复制到Pi的/usr/lib

现在,当我在 IDLE 中运行import dlib时,出现以下错误:

ImportError: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.22' not found (required by dlib/dlib.so)

这是strings /usr/lib/libstdc++.so.6 | grep GLIBCXX的输出:

GLIBCXX_3.4 GLIBCXX_3.4.1 GLIBCXX_3.4.2 GLIBCXX_3.4.3 GLIBCXX_3.4.4 GLIBCXX_3.4.5 GLIBCXX_3.4.6 GLIBCXX_3.4.7 GLIBCXX_3.4.8 GLIBCXX_3.4.9 GLIBCXX_3.4.10 GLIBCXX_3.4.11 GLIBCXX_3.4.12 GLIBCXX_3.4.13 GLIBCXX_3.4.14 GLIBCXX_3.4.15 GLIBCXX_3.4.16 GLIBCXX_3.4.17 GLIBCXX_3.4.18 GLIBCXX_3.4.19 GLIBCXX_3.4.20

这意味着错误是合法的,但我的libstdc++已经在Pi上使用了最新版本。我该怎么做才能在 Pi 上安装3.4.22版本?或者,如果可能的话,可以针对3.4.20再次编译它?如何为此设置编译器标志?

注意:我在RaspberryPi SE网站上发布了这个,但有人建议在这里问它。 libstdc++ 错误

一种选择是在链接时使用-static-libstdc++,请参阅 https://gcc.gnu.org/onlinedocs/gcc/Link-Options.html#Link-Options