免费注册 查看新帖 |

Chinaunix

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

[C] 请教为什么gcc找不到-lsocket而g++却没问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-03-18 22:59 |只看该作者 |倒序浏览
我在centOS5.2和上面,有这样一个小程序
#include<sys/types.h>
#include<sys/socket.h>
#include<stdio.h>
#include<errno.h>
#include<string.h>//strerror
#include<unistd.h>
extern int errno;
int main(void){
int s=socket(PF_INET,SOCK_STREAM,0);
if(s==-1){
  printf("socket function failed,%s\n",strerror(errno));
  return 1;
}
close(s);
return 0;
}
>gcc client.cpp -lsocket -lnls -o client
/usr/bin/ld: cannot find -lsocket
collect2: ld returned 1 exit status
直接用
>g++ client.cpp就没有问题。
我知道g++默认会连接一些常用的库。那么上面的gcc出了什么问题呢,需要设置什么环境相关的东西吗?

谢谢!!!!!!

论坛徽章:
0
2 [报告]
发表于 2009-03-18 23:04 |只看该作者
用-L指定库路径看看

论坛徽章:
11
技术图书徽章
日期:2014-03-01 14:44:34天蝎座
日期:2014-05-21 22:11:59金牛座
日期:2014-05-30 17:06:14
3 [报告]
发表于 2009-03-18 23:05 |只看该作者

回复 #1 jeanlove 的帖子

提问逻辑不对吧,gcc g++都不需要加-lsocket

论坛徽章:
0
4 [报告]
发表于 2009-03-18 23:08 |只看该作者
加上-lstdc++呢?

论坛徽章:
0
5 [报告]
发表于 2009-03-18 23:12 |只看该作者
一个是 silently ignoring libsocket.{a|so},另一个是 prompting non-existence of libsocket.{a|so},你看着办吧。
另:在程序中使用 socket interface,需要 libsocket?CentOS 不是 Linux 嘛,怎么会需要这个。

论坛徽章:
0
6 [报告]
发表于 2009-03-19 11:16 |只看该作者
没有这个库吧??


LZ应该是画蛇添足了

论坛徽章:
0
7 [报告]
发表于 2009-03-19 22:16 |只看该作者
原帖由 tyc611 于 2009-3-18 23:08 发表
加上-lstdc++呢?


这个很强大,瞬间解决了!!!!! 不过socket库应该算是c库吧,不是c++的库,呵呵
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP