Falha na ligação [ld não consegue encontrar a biblioteca]

0

Estou tentando configurar o kernel do Linux [distribuição Angstrom] via make menuconfig , mas recebo esses erros.

make: Warning: File '/usr/src/linux-2.6.32.61/arch/arm/Makefile' has modification time 11511 s in the future
make[1]: Warning: File 'scripts/Makefile.host' has modification time 11393 s in the future
  HOSTCC  scripts/basic/fixdep
/usr/lib/gcc/arm-angstrom-linux-gnueabi/4.3.3/../../../../arm-angstrom-linux-gnueabi/bin/ld: cannot find -lgcc_s
collect2: ld returned 1 exit status
make[1]: *** [scripts/basic/fixdep] Error 1
make: *** [scripts_basic] Error 2

O mesmo ocorre quando eu tentei compilar o programa Hello_world.c.

/usr/lib/gcc/arm-angstrom-linux-gnueabi/4.3.3/../../../../arm-angstrom-linux-gnueabi/bin/ld: cannot find -lgcc_s
collect2: ld returned 1 exit status

Notei que o libgcc_s.so está faltando. Como posso consertar isso? Qualquer ajuda seria realmente apreciada.

    
por dempap 09.02.2014 / 16:51

1 resposta

4

Depende de onde o arquivo está, no meu caso funciona assim:

:~$ locate gcc_s
/lib/x86_64-linux-gnu/libgcc_s.so.1
/usr/lib/gcc/x86_64-linux-gnu/4.6/libgcc_s.so
/usr/lib/gcc/x86_64-linux-gnu/4.7/libgcc_s.so

E você precisa ter certeza de que o caminho está presente em um dos arquivos ld.so.conf como:

:~$ cat /etc/ld.so.conf.d/x86_64-linux-gnu.conf
# Multiarch support
/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu

Mas este é o Debian x86_64

:~$ gcc -lgcc_s sample.c -o sample
:~$ ldd sample
linux-vdso.so.1 =>  (0x00007fff6a9ff000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f8e95a29000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f8e9569f000)
/lib64/ld-linux-x86-64.so.2 (0x00007f8e95c4a000)
    
por 09.02.2014 / 17:42