当前位置:  技术问答>linux和unix

关于《unix网络编程》与《用tcp/ip进行网际互联-第三卷》的示例的编译问题?

    来源: 互联网  发布时间:2015-09-11

    本文导语:  我在运行《unix网络编程》第一卷的代码时,./configure后, 在lib文件夹下运行make,结果如下: [root@localhost unpv12e]# cd lib [root@localhost lib]# make gcc -g -O2 -D_REENTRANT -Wall   -c -o connect_nonb.o connect_nonb.c In file included f...

我在运行《unix网络编程》第一卷的代码时,./configure后,
在lib文件夹下运行make,结果如下:
[root@localhost unpv12e]# cd lib
[root@localhost lib]# make
gcc -g -O2 -D_REENTRANT -Wall   -c -o connect_nonb.o connect_nonb.c
In file included from connect_nonb.c:1:
unp.h:114: redefinition of `struct in_pktinfo'
make: *** [connect_nonb.o] Error 1
请问怎末办?

我在运行《用tcp/ip进行网际互联-第三卷》的代码时,在example目录下运行make,出现如下错误:
root@localhost a]# cd examples
[root@localhost examples]# make
cc -W -pedantic -ansi -g     -c -o connectTCP.o connectTCP.c
cc -W -pedantic -ansi -g     -c -o connectUDP.o connectUDP.c
cc -W -pedantic -ansi -g     -c -o connectsock.o connectsock.c
cc -W -pedantic -ansi -g     -c -o errexit.o errexit.c
cc -W -pedantic -ansi -g     -c -o TCPecho.o TCPecho.c
cc -o TCPecho -W -pedantic -ansi -g   TCPecho.o connectTCP.o connectUDP.o connectsock.o errexit.o
TCPecho.o(.text+0x17a): In function `TCPecho':
/root/c/a/a/examples/TCPecho.c:66: undefined reference to `errno'
connectsock.o(.text+0x160): In function `connectsock':
/root/c/a/a/examples/connectsock.c:69: undefined reference to `errno'
connectsock.o(.text+0x197):/root/c/a/a/examples/connectsock.c:73: undefined reference to `errno'
collect2: ld returned 1 exit status
make: *** [TCPecho] Error 1

代码中有extern int errno
但为甚末找不到呢?

关于这两本书的代码编译似乎许多人都有问题,请高手赐教!

|
Solaris 9 SPARC + gcc 2.95.3
TCP/IP Illustrated, Volume 3的代码编译要修改Makefile的
注意一下README里的这一句:
Then change the definitions of CC, CFLAGS, and LIBS in the Makefile, as appropriate for your system.

|
UNIX Network Programming, Volume 1, Second Edition

    gunzip -c unpv12e.tar.gz | tar xvf -

    cd unpv12e
    ./configure    # try to figure out all implementation differences

    cd lib         # build the basic library that all programs need
    make           # use "gmake" everywhere on BSD/OS systems

    cd ../libfree  # continue building the basic library
    make

    cd ../libgai   # the getaddrinfo() and getnameinfo() functions
    make

    cd ../libroute # only if your system supports 4.4BSD style routing sockets
    make           # only if your system supports 4.4BSD style routing sockets

    cd ../libxti   # only if your system supports XTI
    make           # only if your system supports XTI

    cd ../intro    # build and test a basic client program
    make daytimetcpcli
    ./daytimetcpcli 127.0.0.1

If all that works, you're all set to start compiling individual programs.


TCP/IP Illustrated, Volume 3

cc -c error.c sleepus.c
ar -crv libmisc.a error.o sleepus.o
ranlib libmisc.a # needed for a BSD-derived system

Then change the definitions of CC, CFLAGS, and LIBS in the Makefile,
as appropriate for your system.  Then you can "make all".

如果不行,你应该检查你的编译环境,这些代码我都编译过的,至于“关于这两本书的代码编译似乎许多人都有问题”是因为许多人都没看README

|
可能是内核升级后,头文件位置更改了。可以检查一下定义errno的头文件是否被正确地include了。

|
extern是声明而不是定义!!!!应该是你少包含了某个定义了errno的文件!

|
你好,我也是unix爱好者,
我编译unix网络编程(第2版)时出现以下错误,请问是怎么回事呀?谢谢!
你的unp.h文件能不能通过编译呀?如果能的话,给我发一份好吗?
bash-2.05$ gcc daytimetcpcli01.c -o daytimetcpcli
In file included from unp.h:13,
                 from daytimetcpcli01.c:1:
/usr/local/lib/gcc-lib/sparc-sun-solaris2.9/3.3.2/include/sys/types.h:85: error: conflicting t'
/usr/include/sys/int_types.h:69: error: previous declaration of `int32_t'
In file included from unp.h:200,
                 from daytimetcpcli01.c:1:
addrinfo.h:10: error: redefinition of `struct addrinfo'
In file included from unp.h:200,
                 from daytimetcpcli01.c:1:
addrinfo.h:22:1: warning: "AI_PASSIVE" redefined

|
哈哈,问题解决了

|
你看的unix编程比一定就是linux编程!各个操作系统的头文件还是有点区别的

    
 
 

您可能感兴趣的文章:

  • 读过 Unix网络编程 或者 熟知Unix网络编程的 的进来看一下
  • 刚刚接触Unix系统和Unix编程。急需Unix下多线程程序设计和网络Socket程序设计方面的资料。
  • UNIX网络编程卷1
  • 请问unix网络编程和linux网络有什么区别
  • 谁知道哪有《Unix网络编程》w.richard stevens 著的下载?
  • 求关于UNIX网络编程的好书 最好带项目的那种
  • Unix/Linux网络编程怎样来做一个项目?
  • 请推荐几本Linux/Unix网络编程的好书吧
  • unix网络编程资料帮忙 大哥大姐进来瞧瞧啊
  • 学UNIX网络编程,看哪些书好?大家各抒已见~
  • 《UNIX网络编程》这本书适合linux下的网络编程吗?
  • 看完了<unix网络编程>后
  • Unix/Linux网络编程可以用来做什么?一般从事什么样的职业?
  • 求助:linux/unix网络编程
  • 运行<<UNIX网络编程卷一>>中程序的错误?
  • 哪里有steven的UNIX网络编程源码?
  • 谁知道哪里有unix网络编程第一卷和第二卷电子版的下载?
  • 哪有unix下的c网络编程,如地址有效,我一次性给50分
  • 哪位好人能告诉我哪儿有《UNIX网络编程2版1卷》下载?????
  • unix网络编程中err_quit()是什么函数?
  • unp(unix network programming)中的示例是针对 BSD 的,如何移植到 LINUX 上来?
  • php 创建以UNIX时间戳命名的文件夹(示例代码)
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间java.util.regex类pattern的类成员方法: unix_lines定义及介绍
  • 关于UNIX的历史 : 1973年,K.Thompson和D.M.ritchie,用C改写UNIX。那么,在此之前,UNIX是用什么写的?
  • unix/Linux下c++ boost thread库读写锁介绍
  • 没有unix系统我如何学习unix
  • php将标准字符串格式时间转换成unix时间戳_strtotime
  • unix盘哪里有下载的??哪里有比较好的unix论坛??万分感谢!!!!!!!!!
  • php将unix时间戳转换成字符串时间函数(date)
  • 急!装完unix5.06,再装win2000。重启后不能进unix.
  • unix/Linux下c/c++ pthread库读写锁函数介绍
  • UNIX特急!!!digital unix问题,请专家快来!!!
  • UNIX支持中文否,请推荐UNIX好书
  • SCO UNIX 5.0用软盘启动之后无法启动UNIX
  • 散分!!unix 用户调查!!!你使用哪款unix
  • hp unix 和 sco unix的区别
  • 入门问题,我想向UNIX编程方向发展,单目前不会UNIX,我该如何做
  • 强烈建议将linux/Unix栏目放到“软件开发者”大类里面来。----Unix开发的人助威支持!!!
  • 现在那些unix比较流行?Linux和 Unix有 什么区别?
  • 小问题, Unix 如何建立一个文件 ,unix 文件有后缀名吗
  • 我想学习Unix,请高手给个下载网址,用linux来学习Unix差别大吗?
  • 请问各位unix大虾,哪有免费的unix下载?
  • 学UNIX从SOC UNIX开始好吗?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    CSS属性参考手册 iis7站长之家