注册 | 登录
收藏 | 帮助
热门文章
编辑推荐
相关文章  
我写CC DDOS攻击器的思路及防范方
GCC常用命令描述
如何把ACCESS的数据导入到Mysql中
将ACCESS的转化为SQL SERVER的体
将Access数据库移植到SQL Server
用ASP实现从SQL Server导出数据到
PHP利用COM对象访问SQLServer、A
SQL Server连接ACCESS数据库的实
SQLServer和Access、Excel数据传
用ASP.NET/C#连接Access和SQL Se
您现在的位置: 顶尖设计 >> IT学院 >> 编程开发 >> C >> 文章正文
用gcc 编译,为何有不同的结果 (关于socket函数)?
作者:佚名  来源:不详  点击:  更新:2006-12-19
简介:
---- 我 使 用 的 是Sun 工 作 站, 安 装 的 是Solaris 7 操 作 系 统。 在 我 使 用gcc 进 行 网 络 编 程 时, 
编 译 的 时 候 没 有 出 现 错 误 提 示, 但 是 在 编 译 后, 系 统 却 提 示 我 所 有 的socket 函 数 没 有 
定 义, 因 此 程 序 不 能 运 行, 可 是 我 确 实 在 源 程 序 中 已 经 使 用 了include 语 句 把 应 该 调 用 
的 网 络 库 全 都 加 进 去 了, 为 什 么 还 有 问 题 呢 ? 奇 怪 的 是, 同 样 的 源 程 序, 我 在Linux 6.0 
上 编 译 时 就 可 以 通 过, 说 明 程 序 本 身 没 有 问 题, 是 否 是 我 的Solaris 7 操 作 系 统 的 问 题 呢 ? 

---- 这 并 不 是Solaris 7 的 问 题, 而 是 两 个 操 作 系 统 之 间 的 差 异 造 成 的。Solaris 7 和Linux 6.0 
虽 然 同 属 于Unix 系 统, 但 是 还 是 有 很 大 的 区 别, 就 拿C 编 译 器gcc 来 说,Solaris 7 的gcc 比
Linux 6.0 上 的gcc 在 语 法 要 求 上 要 严 格 得 多, 而 且 在 编 译 时,Solaris 7 的gcc 要 求 输 入 库 文 件, 
而Linux 6.0 则 不 用。 您 在Solaris 7 上 遇 到 的 情 况 就 是 因 为 在 编 译 时, 没 有 指 明 加 入 应 调 用 
的socket 库, 而 在Linux 6.0 则 会 自 动 加 入, 不 需 您 设 置, 所 以 可 以 编 译 通 过。 就 这 一 点 来 说,
Linux 6.0 的gcc 要 方 便 一 些。 如 果 是 在Solaris 7 上 编 译, 应 该 在gcc 后 面 加 入"-lsocket" 的 选 项。 
注 意"-l" 和"socket" 中 间 没 有 空 格。 如 果 在 编 译 时 还 提 示 有 某 些 函 数 没 有 定 义, 则 应 再 加 
入"-lnsl" 选 项。 比 如, 假 设 您 的 源 程 序 名 为test.c, 则 在 编 译 时 应 输 入 如 下 的 命 令: 

---- gcc -lsocket -lnsl test.c 

---- 这 样 程 序 就 可 以 在Solaris 7 编 译 通 过 了。






  • 上一篇文章:
  • 下一篇文章:
  • 分享此文:该页面添加到 Mister Wong 添加到雅虎Yahoo!收藏 Add to:Del.icio.us Post to Furl Digg this 添加到Google书签 reddit spurl blogmarks 365Key 评论  收藏  分享  打印
     我来说两句
    姓名:       验证码:   
    主页: 
    评分: 1分 2分 3分 4分 5分
    本频道近期热评文章:
      关于我们 | 联系我们 | 站点地图 | 广告投放 | 友情链接 | 在线留言 | 版权申明
    版权所有 © 2004-2007 顶尖设计(bobd.cn)
    未经授权禁止转载,摘编,复制本站内容或建立镜像. 沪ICP备07504942号 
    网络110
    报警服务