'não pode encontrar “-lgcc_s”' de gcc-3.4 no Ubuntu 11.04

2

Estou tentando usar gcc-3.4 no Ubuntu mais recente. O pacote é de instantâneos do Debian.

Ele provavelmente assume estrutura de diretórios padrão diferente, por exemplo, fui forçado a fornecer -I /usr/include/i386-linux-gnu/ , que gcc-4 assumiu implicitamente.

Atualmente, ele compila tudo que eu forneci, mas não é possível vincular. Mesmo o mais simples executável resulta no erro:

$ gcc-3.4 ~/tmp.cc -o ~/tmp
/usr/bin/ld: cannot find -lgcc_s
collect2: ld returned 1 exit status
    
por Elazar Leibovich 04.05.2011 / 12:40

3 respostas

6

Aparentemente, você precisa adicionar a biblioteca /lib/i386-linux-gnu/libgcc_s.so.1 e o compilador espera que o link de software /usr/lib/gcc/i486-linux-gnu/3.4.6/libgcc_s.so aponte para o local correto, no entanto:

$ ls -l /usr/lib/gcc/i486-linux-gnu/3.4.6/libgcc_s.so
lrwxrwxrwx 1 root root 18 2011-05-03 04:55 /usr/lib/gcc/i486-linux-gnu/3.4.6/libgcc_s.so -> /lib/libgcc_s.so.1

e

$ ls /lib/libgcc_s.so.1
ls: /lib/libgcc_s.so.1: No such file or directory

Corrija o link simbólico e tudo ficará bem

$ sudo ln /lib/i386-linux-gnu/libgcc_s.so.1  /usr/lib/gcc/i486-linux-gnu/3.4.6/libgcc_s.so

Agora funciona corretamente!

$ g++-3.4   ~/tmp.cc -o ~/tmp
$
    
por 04.05.2011 / 12:45
0

para mim o comando:

sudo ln /lib/i386-linux-gnu/libgcc_s.so.1  /usr/lib/gcc/i486-linux-gnu/3.4.6/libgcc_s.so

não resolve o problema.

Este comando, em vez disso, resolve:

sudo cp /lib/i386-linux-gnu/libgcc_s.so.1 /lib/libgcc_s.so.1
    
por 11.05.2011 / 06:33
0

Eu tive um problema semelhante, mas no meu caso tentando instalar o gcc 4.2 (para compilar no Matlab Simulink) no Ubuntu 11.04

No meu caso, escrevi:

sudo ln  /lib/x86_64-linux-gnu/libgcc_s.so.1  /usr/lib/gcc/x86_64-linux-gnu/4.2.3/libgcc_s.so

E agora o gcc-4.2 está compilando.

    
por 08.05.2011 / 09:53