systemadmin.es > Programación > /usr/bin/ld: cannot find -lc

/usr/bin/ld: cannot find -lc

Al intentar compilar un programa cualquiera con librerías estáticas me encontré con el siguiente error:

$ gcc -Wall clown-newuser.c -static
/usr/bin/ld: cannot find -lc
collect2: ld returned 1 exit status

Esto se debe que a partir de CenOS6 (RHEL6), las librarías estáticas no estan incluidas en el paquete glibc-devel, por lo que deberemos instalar el paquete glibc-static que sí que las incluye.

yum install glibc-static -y

Lo podemos ver mediante rpm con la opción -ql:

# rpm -ql glibc-devel | grep ".a$"
/usr/lib64/libbsd-compat.a
/usr/lib64/libbsd.a
/usr/lib64/libc_nonshared.a
/usr/lib64/libg.a
/usr/lib64/libieee.a
/usr/lib64/libmcheck.a
/usr/lib64/libpthread_nonshared.a
/usr/lib64/librpcsvc.a
# rpm -ql glibc-static
/usr/lib64/libBrokenLocale.a
/usr/lib64/libanl.a
/usr/lib64/libc.a
/usr/lib64/libc_stubs.a
/usr/lib64/libcrypt.a
/usr/lib64/libdl.a
/usr/lib64/libm.a
/usr/lib64/libnsl.a
/usr/lib64/libpthread.a
/usr/lib64/libresolv.a
/usr/lib64/librt.a
/usr/lib64/libutil.a

Por lo que vemos cómo incluye algunas estáticas pero no las que nos interesan, en este caso, libc

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>