在我的 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/