GCC在UNIX下连接的一个问题

源码中包含两个inet.h中的套接口函数:

sockfd=socket(AF_INET,SOCK_STREAM,0); /生成一个socket/
close(sockfd);

在RedHat Linux8下顺利编译连接通过!

但在Unix下编译通过,连接时出错,
以下是copy下的内容,请帮忙看一下!

$ gcc test.c
未定义 文件中的
符号 在文件中
socket /var/tmp/ccZ50EM2.o
closesocket /var/tmp/ccZ50EM2.o
ld: 致命的: 符号参照错误. 没有输出被写入a.out
collect2: ld returned 1 exit status

操作系统是SunOS 5.8
---------------------------------------------------------------

closesocket是WINSOCK的调用
改成close
同时加上-lsocket以链接socket库
---------------------------------------------------------------

这个主要有的unix系统默认编译时就带了这个参数
比如tru64系统就可以而solaris系统就需要加参数

Published At
Categories with 服务器类
Tagged with
comments powered by Disqus