找不到GLIBCX_3.4.21

Kac*_*acy 5 linux gcc zeromq zerorpc

如果这不是正确的地方,我道歉,但在处理同样的错误2天后,我希望有人能得到答案.

我试图使用节点模块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)
Run Code Online (Sandbox Code Playgroud)

我正在使用AWS提供的amazon linux实例(亚马逊网络服务).执行a后sudo yum update,最新版本为GLIBCXX_3.4.19.我使用以下命令检查:

strings /usr/lib64/libstdc++.so.6.19 | grep GLIBCXX
strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX
Run Code Online (Sandbox Code Playgroud)

最初,我使用了这个错误brew install zmq,所以我卸载它并尝试按照zeromq网站的说明安装zmq :

git clone https://github.com/zeromq/libzmq
./autogen.sh && ./configure && make -j 4
make check && make install && sudo ldconfig
Run Code Online (Sandbox Code Playgroud)

我对这些说明的唯一区别是我单独运行它们而不是使用它&&,并且我在每个指令前添加了sudo.我也在export LD_LIBRARY_PATH=/usr/local/lib运行之前执行了.

然后我做了npm install zerorpc --save.当然,我收到了同样的错误,所以我卸载了zerorpc,做了一个make clean,并开始了所有的步骤,除了这次我将configure指令更改为sudo ./configure CXX=/usr/bin/g++ CC=/usr/bin/gcc.而且,我收到了同样的错误.

希望有人有一个建议.我真的不想尝试从源代码编译一个更新的gcc版本,因为我知道这只会是新一轮的麻烦.

Knu*_*sen 1

用更高版本替换 libstdc++(.so.6) 将阻止 c++ 编译器工作。但运行依赖于更高版本的应用程序没有问题libstdc++.so.6。示例:libstdc++.so.6.0.21 https://drive.google.com/file/d/0B7S255p3kFXNNTIzU2thRlZmYVE/view?usp=sharing

\n\n

或者作为软件包,libstdc++-5.1.0-1.el7.x86_64.rpm https://drive.google.com/file/d/0B7S255p3kFXNVFljeEFXV3d6RlU/view?usp=sharing ( # rpm -Uvh --force --nodeps [package]) 注意:您需要进行rpm -Uvh --force libstdc++-4.8.5-4.el7.x86_64.rpm替换外星人包默认为http://mirror.centos.org/centos/7.2.1511/os/x86_64/Packages/libstdc++-4.8.5-4.el7.x86_64.rpm

\n\n

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

\n\n
\n\n

编辑:我刚刚记得使用更高版本的库启动应用程序的正确解决方案。假设你有新的图书馆/opt/libcxx/{libstdc++-so.6 -> libstdc++.so.6.0.21}

\n\n

然后你可以做export LD_LIBRARY_PATH=/opt/libcxx:$LD_LIBRARY_PATH && [executeable],/opt/libcxx/ 将出现在 LD_LIBRARY_PATH 中的第一个位置。您可以使用上述命令创建启动脚本。就像后来版本的 firefox 是在 CentOS 4 中启动的一样。

\n\n
\n\n
\n\n

libzmq : #yum install autoconf automake libtool asciidoc xmlto libunwind-devel

\n\n

您的 libzmq 版本 ( version = 4.2.0 \xe2\x86\x92 $sh version.sh >> VERSION)有一个错误。

\n\n

然而,“v4.1.6”是可以的:git clone https://github.com/zeromq/zeromq4-1.git

\n\n

软件包,来自编辑后的 ​​libzmq/packaging/redhat/libzmq.spec :zeromq-4.1.6-1.el7.centos.x86_64.rpm https://drive.google.com/file/d/0B7S255p3kFXNYllfbUhjd0c5Qm8/view?usp=sharing ... 和zeromq-devel-4.1.6-1.el7.centos.x86_64.rpm https://drive.google.com/文件/d/0B7S255p3kFXNNExVMkpxQzlxcWc/view?usp=共享

\n\n

该套餐提供/usr/bin/curve_keygen/usr/lib64/{libzmq.so.5 -> libzmq.so.5.0.1 <- libzmq.so, libzmq.a}

\n\n
\n\n

编辑:构建zerorpc:git clone https://github.com/0rpc/zerorpc-python.git

\n\n

# yum install python-devel python-setuptools... cd zerorpc-python/; #python(27) setup.py install

\n