libstdc++.so.6: 无法打开共享对象文件: 没有那个文件或目录

98

我想在Cilk++程序中运行Cilkscreen命令,但是出现了以下错误:

/usr/local/cilk/bin/../lib32/pinbin: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory

请帮忙解决一下这个问题。

5个回答

245
尝试这个:
apt-get install lib32stdc++6

8
这比安装ia32-libs要好得多(如trion所建议)。这样做,我只需要安装1或2个其他依赖项,而ia32-libs有241个依赖项,总计267MB额外的磁盘空间。 - Mike
1
这也适用于运行 Microsoft Windows 虚拟设备以测试自解压程序。谢谢! - Charles Engelke
4
对于一台64位机器,我们应该安装lib64stdc++6而不是libstdc++6吗? - boddhisattva
1
@boddhisattva 我认为lib32stdc++6是为了在64位机器上运行32位软件而设计的。类似于“兼容层”。要在64位机器上运行64位(“本地”)软件,您只需要libstdc++6即可。(这些链接适用于Ubuntu 14.04 Trusty Tahr;我找不到Ubuntu 10.10 Maverick Meerkat的链接。) - Franklin Yu
太棒了!虽然我在尝试构建Android源代码时遇到了不同的问题,但它完美地解决了这个问题。非常非常感谢!!! - oscarz

15

我猜你在一台amd64架构的机器上运行Linux操作系统。

你可执行文件所在的目录 (lib32) 表明这是一个需要32位库的32位可执行文件。

因为这些库没有安装在你的系统中,所以你需要手动安装它们。

包的名称取决于你使用的发行版,对于Debian来说是 ia32-libs,对于Fedora则是 libstdc++.<version>.i686


那么您想按照Debian的方式安装ia32-libs或切换到您正在尝试使用的软件的64位版本。 - Fabian Knorr
看起来你正在尝试将64位调试器/监视器附加到32位应用程序或反之亦然? 你真的应该尝试获取64位组件并创建64位可执行文件;这将使生活变得更加容易。 - Fabian Knorr
1
我该怎么做?我是一个Linux初学者,我不太明白如何将64位调试器/监视器附加到32位应用程序上。你能解释一下吗? - ammouna
我以前没有使用过Cilk,所以恐怕无法帮助您。请在Google上搜索64位版本的Cilk或开启一个新主题讨论此话题(“在64位系统上使用Cilk”)。 - Fabian Knorr
谢谢分享!这个方法在我的Debian 6“squeeze”上解决了问题:$ sudo apt-get install ia32-libs - AlessMascherpa
显示剩余2条评论

11

对于 Red Hat:

sudo yum install libstdc++.i686
sudo yum install libstdc++-devel.i686

9

对于Fedora,请使用以下命令:

yum install libstdc++44.i686

您可以通过运行以下命令来查找支持的版本:

yum list all | grep libstdc | grep i686


1

/usr/local/cilk/bin/../lib32/pinbin 动态链接到 libstdc++.so.6 库,但该库已不再存在。您需要重新编译 Cilk。


但是libstdc++.so.6存在于/usr/lib文件夹中。 - ammouna
1
是的,但由于它是32位应用程序,因此需要/usr/lib32/libstdc++.so.6 - Fabian Knorr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接