c++ - Docker compose libstdc++.so.6 GLIBCXX_3.4.21 未找到

标签 c++ c node.js docker-compose ubuntu-16.04

在我的 Node 目录中运行 docker-compose up 时,我得到了

/usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /app/node_modules/bcrypt/lib/binding/bcrypt_lib.node)

但我确实能说会道:

strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX_3.4.2
GLIBCXX_3.4.2
GLIBCXX_3.4.20
GLIBCXX_3.4.21
GLIBCXX_3.4.22

我试过

sudo add-apt-repository ppa:ubuntu-toolchain-r/test 
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade

根据 https://askubuntu.com/questions/164296/glibcxx-3-4-15-not-found但我得到了同样的错误。我不知道如何解决这个问题,也无法在其他任何地方找到解决方案。

如果重要的话,这是在 Ubuntu 16.04 上。

最佳答案

npm 上的一些 Node 插件使用 node-pre-gyp提供下载预编译插件二进制文件的能力,这样您就不需要安装编译器就可以使用它(主要在 Windows 上有用,在 Windows 上通常更难设置构建环境)。

对于这些类型的插件,您可以指定 --build-from-source command line option告诉 node-pre-gyp 总是在本地编译而不是下载一个预编译的插件二进制文件。

通过使用此标志安装插件,当预编译的插件二进制文件在使用不同 glibc ABI 的旧/新机器上编译时,您可以避免此类错误。

关于c++ - Docker compose libstdc++.so.6 GLIBCXX_3.4.21 未找到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42464873/

相关文章:

objective-c - 在 Objective-C 中舍入双数

c++ - 继承中的析构函数

c++ - 返回不同类型的模板函数

C++类继承困惑

c - 在多个进程之间传递消息,每个进程在 c 中有多个线程

具有 int 和 char 的堆栈的 C 程序

node.js - 无法通过express/heroku查看Angular应用程序?

node.js - Angular 7 中 ActiveXObject 的问题

node.js - MongoDB Node.js 每个方法

c++ - 作业任务 : Checking the equality of two arrays