免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1919 | 回复: 2
打印 上一主题 下一主题

[C] 请帮忙看一下,编译报错 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-12-18 18:02 |只看该作者 |倒序浏览
一个c程序,环境是sco507
报错如下:
Undefined                       first referenced
symbol                              in file
bind                                /usr/tmp/ccim7v75.o
listen                              /usr/tmp/ccim7v75.o
recv                                /usr/tmp/ccim7v75.o
send                                /usr/tmp/ccim7v75.o
accept                              /usr/tmp/ccim7v75.o
socket                              /usr/tmp/ccim7v75.o
htons                               /usr/tmp/ccim7v75.o
ERROR: Symbol referencing errors. No output written to a.out
collect2: ld returned 1 exit status


还请高手指点

论坛徽章:
0
2 [报告]
发表于 2010-12-18 18:09 |只看该作者
man 一下你的这几个函数,看有没有提示要加入什么链接项

论坛徽章:
0
3 [报告]
发表于 2010-12-18 18:11 |只看该作者
刚在网上找到原因了:

$gcc -o server server.c -lsocket


需要确保头文件包含正确,并且指定-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参数。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP