libstdc ++. so.6: não é possível abrir o arquivo de objeto compartilhado: Não existe tal arquivo ou diretório

92

Quero executar o comando Cilkscreen com um programa cilk ++, mas recebo este erro

/usr/local/cilk/bin/../lib32/pinbin: erro ao carregar bibliotecas compartilhadas: libstdc ++. so.6: não é possível abrir o arquivo de objeto compartilhado: Não existe esse arquivo ou diretório

Você pode me ajudar por favor

Amouna
fonte

Respostas:

220

Experimente isto:

apt-get install lib32stdc++6
pegue
fonte
6
Isso é muito melhor do que instalar ia32-libs (como proposto por trion). Ao fazer isso, tive que instalar 1 ou 2 outras dependências enquanto ia32-libs tem 241 dependências totalizando 267 MB de espaço em disco adicional.
Mike de
1
Isso também funciona para executar os dispositivos virtuais do Microsoft Windows para testar o programa de extração automática. Obrigado!
Charles Engelke
4
@takeit Para uma máquina de 64 bits, devemos instalar lib64stdc++6?
boddhisattva
@boddhisattva Acho que lib32stdc++6é para máquinas de 64 bits rodando software de 32 bits. Algo semelhante a "camada de compatibilidade". Para executar software de 64 bits ("nativo") em uma máquina de 64 bits, você só precisa libstdc++6. (Os links são para Ubuntu 14.04 Trusty Tahr; não consigo encontrar o link para Ubuntu 10.10 Maverick Meerkat.)
Franklin Yu
Incrível, embora eu tenha encontrado esse problema em uma situação diferente onde tento construir o código-fonte do Android, ele descobriu o problema perfeitamente. Muito obrigado !!! ls
Oscar Zhou1989
15

Presumo que você esteja executando o Linux em uma máquina amd64. A pasta em que seu executável reside ( lib32) sugere um executável de 32 bits que requer bibliotecas de 32 bits.

Eles parecem não estar presentes em seu sistema, então você precisa instalá-los manualmente. O nome do pacote depende da sua distribuição, para o Debian é ia32-libs, para o Fedora libstdc++.<version>.i686.

Fabian Knorr
fonte
Estou executando o Linux no Ubuntu 10.10
ammouna
Então você deseja fazer isso do jeito Debian e instalar ia32-libsou mudar para uma versão de 64 bits do software que você está tentando usar.
Fabian Knorr
Fui instalado este pacote, mas agora recebo outro erro "processo interrompido pelo sinal -7 E: Falha ao anexar ao pid 3874: Operação não permitida"
ammouna
Parece que você está tentando conectar um depurador / monitor de 64 bits a um aplicativo de 32 bits ou vice-versa? Você realmente deve tentar obter componentes de 64 bits e criar executáveis ​​de 64 bits; isso tornará a vida muito mais fácil.
Fabian Knorr
1
Como posso fazer isso ? Sou um iniciante em Linux e não entendo bem como conectar um depurador / monitor de 64 bits a um aplicativo ov / s de 32 bits. você pode explicar isso, por favor
ammouna
9

Para uso do Fedora:

yum install libstdc++44.i686

Você pode descobrir quais versões são compatíveis executando:

yum list all | grep libstdc | grep i686

Gilm
fonte
7

Para Red Hat:

sudo yum install libstdc++.i686
sudo yum install libstdc++-devel.i686
Arpit Gupta
fonte
1

/usr/local/cilk/bin/../lib32/pinbin está dinamicamente vinculado a uma biblioteca libstdc ++. so.6 que não está mais presente. Você precisa recompilar Cilk

Thomas
fonte
mas libstdc ++. so.6 existe na pasta / usr / lib
ammouna
1
Sim, mas como é um aplicativo de 32 bits, é necessário /usr/lib32/libstdc++.so.6.
Fabian Knorr