error al compilar con sockets

[marc@localhost parchis]$ cc servicio.c lee_dir.c -lnsl -lsocket -o servicio
/usr//bin/ld: cannot find -lsocket
collect2: ld returned 1 exit status


hago eso al compilar un programa... que me falta?¿
Yo he hecho alguna cosa en sockets y no recuerdo haber especificado ninguna libreria. Los sockets al fin y al cabo, son llamadas al sistema.

Saludos
pues es que me obligan a que lo compile con lnsl y lsocket que no se ni pa que vale
Extraido de la guia beej de sockets en C.

Si compilas para Solaris o SunOS, necesitas indicar algunos conmutadores adicionales en la línea de comandos para enlacer las bibliotecas adecuadas. Para conseguirlo simplemente añade " -lnsl -lsocket -lresolv" al final del comando de compilación, como sigue:
    $ cc -o server server.c -lnsl -lsocket -lresolv



He probado un par de cositas que he hecho yo y compilan a la perfección usando -lnsl -lresolv. Cuando pruebo con -lsocket, me dice esto:
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3/../../../../i686-pc-linux-gnu/bin/ld: no se puede encontrar -lsocket
collect2: ld devolvió el estado de salida 1

De todas formas, el mismo programa me compila y funciona a la perfección sin ningun flag, quiza si te lo piden es por portabilidad

Saludos
3 respuestas