在 centos6 上配置 gcc-4.8.5 以包含 GLIBCXX_3.4.20
Configure gcc-4.8.5 to include GLIBCXX_3.4.20 on centos6
大家好我几天来一直在寻找这个问题的解决方案,但是 none 在线发布的方法对我有用。基本上,我正在尝试在我的生产服务器 (centos-release-6-8.el6.centos.12.3.x86_64
) 上安装 NodeGit 库。执行 npm install
会引发以下错误:
Error: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /home/app/node_modules/nodegit/build/Release/nodegit.node)
at Error (native)
at Object.Module._extensions..node (module.js:434:18)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
at Module.require (module.js:353:17)
at require (internal/module.js:12:17)
at Object.<anonymous> (/home/app/node_modules/nodegit/dist/nodegit.js:11:12)
at Module._compile (module.js:409:26)
at Object.Module._extensions..js (module.js:416:10)
at Module.load (module.js:343:32)
]
killed: false,
code: 1,
signal: null,
cmd: '/bin/sh -c node /home/app/node_modules/nodegit/dist/nodegit.js' }
做 strings /usr/lib64/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_FORCE_NEW
GLIBCXX_DEBUG_MESSAGE_LENGTH
所以 GLIBCXX_3.4.20
不见了。 运行 gcc -v
给出:
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/packages/encap/gcc-4.8.5/bin/../libexec/gcc/x86_64-unknown-linux-gnu/4.8.5/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: ../gcc-4.8.5/configure --enable-languages=c,c++,fortran --enable-shared --disable-libstdcxx-pch --enable-lto --enable-libgomp --enable-__cxa_atexit --enable-tls --with-gmp --with-mpfr --with-mpc --with-libelf
Thread model: posix
gcc version 4.8.5 (GCC)
有些地方建议我在 this 之后安装 gcc-4.9。但它根本不起作用,因为在生产服务器中,我必须通过主机管理工具(Roller)安装 gcc,这很麻烦,我想避免这样做。
你们知道安装 GLIBCXX_3.4.20 的方法吗?
在 GCC-4.9 (reference) 中添加了 GLIBCXX_3.4.20
。
Some places suggest I install gcc-4.9 following this . But it simply doesn't work because in the production server I have to install gcc through a host management tool(Roller) which is a pain in the ass and I want to avoid doing that.
不知何故,您必须从GCC-4.9.x
(或更高版本)获取libstdc++.so.6
到生产服务器上,并且在您的二进制文件可以找到它的地方.
如果您不想使用 Roller,可以任何其他您喜欢的方式。
大家好我几天来一直在寻找这个问题的解决方案,但是 none 在线发布的方法对我有用。基本上,我正在尝试在我的生产服务器 (centos-release-6-8.el6.centos.12.3.x86_64
) 上安装 NodeGit 库。执行 npm install
会引发以下错误:
Error: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /home/app/node_modules/nodegit/build/Release/nodegit.node)
at Error (native)
at Object.Module._extensions..node (module.js:434:18)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
at Module.require (module.js:353:17)
at require (internal/module.js:12:17)
at Object.<anonymous> (/home/app/node_modules/nodegit/dist/nodegit.js:11:12)
at Module._compile (module.js:409:26)
at Object.Module._extensions..js (module.js:416:10)
at Module.load (module.js:343:32)
]
killed: false,
code: 1,
signal: null,
cmd: '/bin/sh -c node /home/app/node_modules/nodegit/dist/nodegit.js' }
做 strings /usr/lib64/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_FORCE_NEW
GLIBCXX_DEBUG_MESSAGE_LENGTH
所以 GLIBCXX_3.4.20
不见了。 运行 gcc -v
给出:
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/packages/encap/gcc-4.8.5/bin/../libexec/gcc/x86_64-unknown-linux-gnu/4.8.5/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: ../gcc-4.8.5/configure --enable-languages=c,c++,fortran --enable-shared --disable-libstdcxx-pch --enable-lto --enable-libgomp --enable-__cxa_atexit --enable-tls --with-gmp --with-mpfr --with-mpc --with-libelf
Thread model: posix
gcc version 4.8.5 (GCC)
有些地方建议我在 this 之后安装 gcc-4.9。但它根本不起作用,因为在生产服务器中,我必须通过主机管理工具(Roller)安装 gcc,这很麻烦,我想避免这样做。
你们知道安装 GLIBCXX_3.4.20 的方法吗?
在 GCC-4.9 (reference) 中添加了 GLIBCXX_3.4.20
。
Some places suggest I install gcc-4.9 following this . But it simply doesn't work because in the production server I have to install gcc through a host management tool(Roller) which is a pain in the ass and I want to avoid doing that.
不知何故,您必须从GCC-4.9.x
(或更高版本)获取libstdc++.so.6
到生产服务器上,并且在您的二进制文件可以找到它的地方.
如果您不想使用 Roller,可以任何其他您喜欢的方式。