需要确保头文件包含正确,并且指定-lsocket选项如下:
cc [ flag ... ] file ... -lsocket -lnsl [ library ... ]
#include <sys/types.h>
#include <sys/socket.h>
Linux下socket调用是在libc中实现的,因此不需要指定-lsocket;但Solaris下,由于存在两套socket库的实现:
3SOCKET - BSD风格socket库,大多数GNU/Linux软件使用这个库
3XNET - 标准socket库
因此Solaris socket库并不包含在libc中,需要给链接器指定-lsocket参数。