c++ - 在 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
或任何版本的GLIBCXX
or 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 版本。谁能帮我解决这个问题?
谢谢你。
解决方案
推荐阅读
- sql - PostgreSQL 将月份字符串转换为月份的开始和结束日期
- asp.net-core-2.1 - 如何在 asp.net Core 2.1.1 中为 IdentityUser 创建自定义字段
- java - VLCJ - 在 64 位 Linux 上捆绑原生 VLC 库
- javascript - 自动跳到表格单元格中的下一个输入字段
- postgresql - flyway 无法连接到 docker-entrypoint-initdb.d 脚本中的 postgres 容器
- c++ - 如何通过索引访问枚举类?
- javascript - Java 的 next() 和 hasNext() 方法的原生 JS 替代方案
- laravel - AWS Elastic Beanstalk 上的多个 docker 容器,如何扩展每个容器?
- javascript - Javascript 有助于动态创建 html 元素并将元素填充到 DOM
- neural-network - 用于设计神经网络架构的模板