我正在尝试安装这个名为 Skedler 的软件。他们的文档提到了 GLIBCXX 库依赖项,但他们懒得提供安装说明。
GLIBCXX libraries
Skedler has dependency on libstdc++ library.
Following are the GLIBCXX versions the code depends on
libstdc++.so.6 (GLIBCXX_3.4.9) => /usr/lib/x86_64-linux-gnu/libstdc++.so.6
libstdc++.so.6 (GLIBCXX_3.4.15) => /usr/lib/x86_64-linux-gnu/libstdc++.so.6
libstdc++.so.6 (GLIBCXX_3.4) => /usr/lib/x86_64-linux-gnu/libstdc++.so.6
To check the versions on your server. Please run the command
CentOS
strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX
Debian/Ubuntu
strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX
If the version is not available, update the GCC compiler
在 Ubuntu 18.04 上运行grep
命令给出 a 。no such file found
我还尝试了sudo apt-get install libstdc++
其他几个命令,但似乎没有安装所需的库。
答案1
对于现代 Debian/Ubuntu,建议检查的路径名不准确。该命令可能应该是:
strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX
ldd
该段看起来像是命令输出的一部分:
libstdc++.so.6 (GLIBCXX_3.4.9) => /usr/lib/x86_64-linux-gnu/libstdc++.so.6
libstdc++.so.6 (GLIBCXX_3.4.15) => /usr/lib/x86_64-linux-gnu/libstdc++.so.6
libstdc++.so.6 (GLIBCXX_3.4) => /usr/lib/x86_64-linux-gnu/libstdc++.so.6
not found
事实上,这三行中任何一行的箭头后面都没有文本,这表明安装程序测试的二进制文件确实成功地在库中找到了它所需的所有内容。所以看来您的系统已经处理了这种依赖性。
顺便说一下,Skedler 的输出看起来有点令人困惑,关于库的名称。最用户可见的名称实际上应该是libstdc++
。
在 Debian 9 中,当前可用的版本有两个libstdc++
:当前版本打包为libstdc++6
,而曾经在各种专有软件中流行的旧版本打包为libstdc++5
。我猜想 Ubuntu 可能有类似名称的变体可用。
该名称GLIBCXX
是库中版本符号名称的前缀。通常它会与库的实际名称更密切相关(没有“lib”前缀),但在这种情况下,加号是一个问题,因此它们被替换为 X 字符。
(旧版本libstdc++5
使用了与当前版本不兼容的不同 ABI,并且其版本符号使用了前缀GLIBCPP
。)