首页 > 解决方案 > 在 libstdc++.so 中缺少 GLIBCXX 的 Alpine Linux 库

问题描述

我正在尝试将 Alpine Linux 用于容器化 C++ 应用程序。由于图像大小,我们正在尝试从 Ubuntu 切换到 Alpine Linux。

我在 C++ 构建过程中遇到了几个错误,其中大部分都通过安装相应的包得到解决。我终于达到了无法克服这个特定错误的地步:

undefined reference to `operator new(unsigned long)@GLIBCXX_3.4'

经过一些研究,我提出了使用以下命令检查/usr/lib/libstdc++.so.6.0.28文件是否存在的建议,并输出:GLIBCXX_3.4

bash-5.0# strings /usr/lib/libstdc++.so.6.0.28 | grep GLIBC
GLIBCXX_FORCE_NEW
GLIBCXX_DEBUG_MESSAGE_LENGTH

没有GLIBCXX_3.4或任何版本的GLIBCXXor GLIBC

在 Ubuntu 中运行相同的命令会产生以下结果:

 root@379aa5a61642:/app# strings /usr/lib/gcc/x86_64-linux-gnu/9/libstdc++.so | grep GLIB
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
GLIBCXX_3.4.21
GLIBCXX_3.4.22
GLIBCXX_3.4.23
GLIBCXX_3.4.24
GLIBCXX_3.4.25
GLIBCXX_3.4.26
GLIBCXX_3.4.27
GLIBCXX_3.4.28
GLIBC_2.2.5
GLIBC_2.3
GLIBC_2.14
GLIBC_2.6
GLIBC_2.4
GLIBC_2.18
GLIBC_2.16
GLIBC_2.3.4
GLIBC_2.17
GLIBC_2.3.2
GLIBCXX_DEBUG_MESSAGE_LENGTH

显然,Ubuntu 似乎拥有所有的 GLIB 版本。谁能帮我解决这个问题?

谢谢你。

标签: c++clinuxmakefilealpine

解决方案


推荐阅读