Linux 未找到GLIBCX_3.4.21

Linux 未找到GLIBCX_3.4.21,linux,gcc,zeromq,zerorpc,Linux,Gcc,Zeromq,Zerorpc,我很抱歉,如果这不是一个正确的地方,但经过两天的处理相同的错误,我希望有人会有一个答案 我尝试使用节点模块zerorpc,它使用zmq,但是,当尝试运行一个小示例时,我得到以下错误: Error: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by myFilepath/node_modules/zmq/build/Release/zmq.node) 我正在使用AWS(AmazonWeb服务)提供

我很抱歉,如果这不是一个正确的地方,但经过两天的处理相同的错误,我希望有人会有一个答案

我尝试使用节点模块zerorpc,它使用zmq,但是,当尝试运行一个小示例时,我得到以下错误:

Error: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by myFilepath/node_modules/zmq/build/Release/zmq.node)
我正在使用AWS(AmazonWeb服务)提供的AmazonLinux实例。执行
sudo-yum更新后,可用的最新版本为GLIBCXX_3.4.19。我使用以下命令进行了检查:

strings /usr/lib64/libstdc++.so.6.19 | grep GLIBCXX
strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX
最初,我使用
brew安装zmq
时出现此错误,因此我卸载了它并尝试按照以下步骤安装zmq:

我对这些指令所做的唯一区别是,我单独运行它们,而不是使用
&&
,并且在每个指令前面添加了sudo。 在运行这些之前,我还执行了导出LD_LIBRARY_PATH=/usr/local/lib

然后我安装了zerorpc--save。 当然,我收到了相同的错误,所以我卸载了zerorpc,进行了一次清理,并开始了所有步骤,除了这次我将configure指令更改为sudo./configure CXX=/usr/bin/g++CC=/usr/bin/gcc。再一次,我收到了同样的错误

希望有人有个建议。 我真的不想尝试从源编译一个新的GCC版本,因为我知道这只是新一轮的头痛。

< P>用LysSTDc++(.SO 6)替换一个后版本将阻止C++编译器工作。但通过运行依赖于更高版本的
libstdc++.so.6
的应用程序,不会出现任何问题。示例:libstdc++.so.6.0.21

或者作为包,libstdc++-5.1.0-1.el7.x86_64.rpm(#
rpm-Uvh--force--nodeps[package]
)注意:您需要执行
rpm-Uvh--force libstdc++-4.8.5-4.el7.x86_64.rpm
以默认包替换外来包

建议:使用默认的libstdc++构建应用程序和库


编辑:我刚刚想起了用更高版本的库启动应用程序的正确解决方案。假设您将新库设置为
/opt/libcxx/{libstdc++-so.6->libstdc++.so.6.0.21}

然后您可以执行导出LD_LIBRARY\u PATH=/opt/libcxx:$LD_LIBRARY\u PATH&[executable],并且/opt/libcxx/将位于LD_LIBRARY\u路径的第一位。您可以使用上述命令创建开始脚本。就像firefox的更高版本是在CentOS 4中启动的一样



libzmq:#
yum安装autoconf automake libtool ascidoc xmlto libunwind devel

您的libzmq版本(版本=4.2.0)→ $ <代码>sh version.sh>>版本)存在错误

但是,“v4.1.6”还可以:
git克隆https://github.com/zeromq/zeromq4-1.git

软件包,来自编辑的libzmq/packaging/redhat/libzmq.spec:
zeromq-4.1.6-1.el7.centos.x86_64.rpm
。。。和
zeromq-devel-4.1.6-1.el7.centos.x86_64.rpm

这些包提供了
/usr/bin/curve_keygen
/usr/lib64/{libzmq.so.5->libzmq.so.5.0.1我不一定要“修复”这个问题,但我找到了解决方案。
因为我使用的是AWS,所以我启动了一个Ubuntu实例(与我最初使用的Amazon Linux实例相比),并将项目移到了另一个位置

之所以这样做是因为Ubuntu使用了不同的包管理器。 在更新和安装了运行项目的所有基本内容之后,我实际上再次遇到了完全相同的错误

然后我运行了以下命令,错误消失了:

sudo add-apt-repository ppa:ubuntu-toolchain-r/test 
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
这些命令是在另一个例子中提出的


我不认为这是公认的答案,因为对于大多数人来说,迁移到不同的发行版可能不是一个可行的解决方案。

我把我的解决方案留在这里。即使问题来自不同的“框架”,也许我的解决方案可以给你一些想法

我的Matlab在根路径中链接到它的
libstdc++.so.6
库,而不是系统路径。它是我使用gstream lib执行任务的旧版本。因此,我重命名了Matlab的.so文件,以强制Matlab链接到系统版本


我想这个话题已经解决了,但我在这里写下了我的经验,以防万一它能帮助其他人。

请编辑你的帖子以显示RHEL版本:
cat/etc/redhat release
@KnudLarsen我实际上犯了一个小错误,因为它使用了
yum
(与
apt-get
)。这只是一个Amazon Linux实例,而不是redhat。编辑了我的帖子。命令
cat/etc/system release
生成了
Amazon Linux AMI release 2016.03
。Amazon Linux AMI release 2016.03:OK,glibc-2.17,gcc-4.8.3,yum,kernel-4.4.11:接近CentOS 7(RHEL7)…如果libstc++-5.1.1或类似版本适合,我会试试:让GLIBCXX_3.4.21对象可用。同时对
libzmq
进行测试构建,最好是
libzmq-4.2.0-1.el7-x86_64.rpm
。感谢您的快速响应和所有信息,但我仍然有点不清楚我应该做什么。您可以吗也许我应该为我应该采取的步骤编号以便更清楚?另外,我使用的是node.js版本的zerorpc而不是python。»我应该采取的步骤«:针对哪个库?关于libzmq:只需安装下载的软件包:
cd Downloads/
;#
yum install zeromq-*.rpm
我卸载了以前所做的一切,下载了rpm软件包并在其上运行
yum install
命令,克隆了v4.1.6并执行了与我在另一个版本上执行的相同的安装说明,我仍然收到错误GLIBCXX_3.4.21 not found。我是否错过了步骤?我仍然收到错误GLIBCXX_3.4.21 not found«:?哪个命令将导致错误?我收到为服务器运行zerorpc的完整示例时出错:因此对我来说,命令是:
node server.js
I编辑了文章。(/opt)
sudo add-apt-repository ppa:ubuntu-toolchain-r/test 
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade