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

Respostas:


220

Experimente isto:

apt-get install lib32stdc++6

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.


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


7

Para Red Hat:

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

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


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.