UNIX网络编程 卷2:进程间通信 第二版 源代码配置遇到的问题

Linux localhost.localdomain 3.10.0-1127.el7.x86_64 #1 SMP Tue Mar 31 23:36:51 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

进行到

cd lib

make

显示错误

gcc -g -O2 -D_REENTRANT -Wall -D_POSIX_PTHREAD_SEMANTICS   -c -o daemon_inetd.o daemon_inetd.c
gcc -g -O2 -D_REENTRANT -Wall -D_POSIX_PTHREAD_SEMANTICS   -c -o daemon_init.o daemon_init.c

daemon_init.c: 在函数‘daemon_init’中:
daemon_init.c:12:2: 错误:未知的类型名‘pid_t’
  pid_t pid;
  ^
daemon_init.c:14:2: 警告:隐式声明函数‘Fork’ [-Wimplicit-function-declaration]
  if ( (pid = Fork()) != 0)
  ^
daemon_init.c:15:3: 警告:隐式声明函数‘exit’ [-Wimplicit-function-declaration]
   exit(0);   /* parent terminates */
   ^
daemon_init.c:15:3: 警告:隐式声明与内建函数‘exit’不兼容 [默认启用]
daemon_init.c:18:2: 警告:隐式声明函数‘setsid’ [-Wimplicit-function-declaration]
  setsid();    /* become session leader */
  ^
daemon_init.c:20:2: 警告:隐式声明函数‘Signal’ [-Wimplicit-function-declaration]
  Signal(SIGHUP, SIG_IGN);
  ^
daemon_init.c:20:9: 错误:‘SIGHUP’未声明(在此函数内第一次使用)
  Signal(SIGHUP, SIG_IGN);
         ^
daemon_init.c:20:9: 附注:每个未声明的标识符在其出现的函数内只报告一次
daemon_init.c:20:17: 错误:‘SIG_IGN’未声明(在此函数内第一次使用)
  Signal(SIGHUP, SIG_IGN);
                 ^
daemon_init.c:27:2: 警告:隐式声明函数‘chdir’ [-Wimplicit-function-declaration]
  chdir("/");    /* change working directory */
  ^
daemon_init.c:29:2: 警告:隐式声明函数‘umask’ [-Wimplicit-function-declaration]
  umask(0);    /* clear our file mode creation mask */
  ^
daemon_init.c:32:3: 警告:隐式声明函数‘close’ [-Wimplicit-function-declaration]
   close(i);
   ^
make: *** [daemon_init.o] 错误 1

照网上经验 ,修改config.h

//#define    uint8_t unsigned char                /* <sys/types.h> */
//#define    uint16_t unsigned short                /* <sys/types.h> */
//#define    uint32_t unsigned int                /* <sys/types.h> */

接着

make

显示错误

gcc -g -O2 -D_REENTRANT -Wall -D_POSIX_PTHREAD_SEMANTICS   -c -o daemon_init.o daemon_init.c
daemon_init.c: 在函数‘daemon_init’中:
daemon_init.c:12:2: 错误:未知的类型名‘pid_t’
  pid_t pid;
  ^
daemon_init.c:14:2: 警告:隐式声明函数‘Fork’ [-Wimplicit-function-declaration]
  if ( (pid = Fork()) != 0)
  ^
daemon_init.c:15:3: 警告:隐式声明函数‘exit’ [-Wimplicit-function-declaration]
   exit(0);   /* parent terminates */
   ^
daemon_init.c:15:3: 警告:隐式声明与内建函数‘exit’不兼容 [默认启用]
daemon_init.c:18:2: 警告:隐式声明函数‘setsid’ [-Wimplicit-function-declaration]
  setsid();    /* become session leader */
  ^
daemon_init.c:20:2: 警告:隐式声明函数‘Signal’ [-Wimplicit-function-declaration]
  Signal(SIGHUP, SIG_IGN);
  ^
daemon_init.c:20:9: 错误:‘SIGHUP’未声明(在此函数内第一次使用)
  Signal(SIGHUP, SIG_IGN);
         ^
daemon_init.c:20:9: 附注:每个未声明的标识符在其出现的函数内只报告一次
daemon_init.c:20:17: 错误:‘SIG_IGN’未声明(在此函数内第一次使用)
  Signal(SIGHUP, SIG_IGN);
                 ^
daemon_init.c:27:2: 警告:隐式声明函数‘chdir’ [-Wimplicit-function-declaration]
  chdir("/");    /* change working directory */
  ^
daemon_init.c:29:2: 警告:隐式声明函数‘umask’ [-Wimplicit-function-declaration]
  umask(0);    /* clear our file mode creation mask */
  ^
daemon_init.c:32:3: 警告:隐式声明函数‘close’ [-Wimplicit-function-declaration]
   close(i);
   ^
make: *** [daemon_init.o] 错误 1

进入li目录发现unpipc.h文件为空,又发现除了bench文件夹下的unpipn.h文件有内容外,其余文件夹同名文件均为空文件。

更换unpipc.h

make

[common@localhost lib]$ make
gcc -g -O2 -D_REENTRANT -Wall -D_POSIX_PTHREAD_SEMANTICS   -c -o daemon_init.o daemon_init.c
gcc -g -O2 -D_REENTRANT -Wall -D_POSIX_PTHREAD_SEMANTICS   -c -o error.o error.c
gcc -g -O2 -D_REENTRANT -Wall -D_POSIX_PTHREAD_SEMANTICS   -c -o gf_time.o gf_time.c
gcc -g -O2 -D_REENTRANT -Wall -D_POSIX_PTHREAD_SEMANTICS   -c -o lock_reg.o lock_reg.c
gcc -g -O2 -D_REENTRANT -Wall -D_POSIX_PTHREAD_SEMANTICS   -c -o lock_test.o lock_test.c
gcc -g -O2 -D_REENTRANT -Wall -D_POSIX_PTHREAD_SEMANTICS   -c -o my_shm.o my_shm.c
gcc -g -O2 -D_REENTRANT -Wall -D_POSIX_PTHREAD_SEMANTICS   -c -o px_ipc_name.o px_ipc_name.c
gcc -g -O2 -D_REENTRANT -Wall -D_POSIX_PTHREAD_SEMANTICS   -c -o readable_timeo.o readable_timeo.c
gcc -g -O2 -D_REENTRANT -Wall -D_POSIX_PTHREAD_SEMANTICS   -c -o readline.o readline.c
gcc -g -O2 -D_REENTRANT -Wall -D_POSIX_PTHREAD_SEMANTICS   -c -o readn.o readn.c
gcc -g -O2 -D_REENTRANT -Wall -D_POSIX_PTHREAD_SEMANTICS   -c -o set_concurrency.o set_concurrency.c
gcc -g -O2 -D_REENTRANT -Wall -D_POSIX_PTHREAD_SEMANTICS   -c -o set_nonblock.o set_nonblock.c
gcc -g -O2 -D_REENTRANT -Wall -D_POSIX_PTHREAD_SEMANTICS   -c -o signal.o signal.c
gcc -g -O2 -D_REENTRANT -Wall -D_POSIX_PTHREAD_SEMANTICS   -c -o signal_intr.o signal_intr.c
gcc -g -O2 -D_REENTRANT -Wall -D_POSIX_PTHREAD_SEMANTICS   -c -o sleep_us.o sleep_us.c
gcc -g -O2 -D_REENTRANT -Wall -D_POSIX_PTHREAD_SEMANTICS   -c -o signal_rt.o signal_rt.c
gcc -g -O2 -D_REENTRANT -Wall -D_POSIX_PTHREAD_SEMANTICS   -c -o signal_rt_intr.o signal_rt_intr.c
gcc -g -O2 -D_REENTRANT -Wall -D_POSIX_PTHREAD_SEMANTICS   -c -o timing.o timing.c
gcc -g -O2 -D_REENTRANT -Wall -D_POSIX_PTHREAD_SEMANTICS   -c -o tv_sub.o tv_sub.c
gcc -g -O2 -D_REENTRANT -Wall -D_POSIX_PTHREAD_SEMANTICS   -c -o wrappthread.o wrappthread.c
gcc -g -O2 -D_REENTRANT -Wall -D_POSIX_PTHREAD_SEMANTICS   -c -o wrapsunrpc.o wrapsunrpc.c
gcc -g -O2 -D_REENTRANT -Wall -D_POSIX_PTHREAD_SEMANTICS   -c -o wrapstdio.o wrapstdio.c
gcc -g -O2 -D_REENTRANT -Wall -D_POSIX_PTHREAD_SEMANTICS   -c -o wrapunix.o wrapunix.c
gcc -g -O2 -D_REENTRANT -Wall -D_POSIX_PTHREAD_SEMANTICS   -c -o writable_timeo.o writable_timeo.c
gcc -g -O2 -D_REENTRANT -Wall -D_POSIX_PTHREAD_SEMANTICS   -c -o writen.o writen.c
ar rv ../libunpipc.a daemon_inetd.o daemon_init.o error.o gf_time.o lock_reg.o lock_test.o my_shm.o px_ipc_name.o readable_timeo.o readline.o readn.o set_concurrency.o set_nonblock.o signal.o signal_intr.o sleep_us.o signal_rt.o signal_rt_intr.o timing.o tv_sub.o wrappthread.o wrapsunrpc.o wrapstdio.o wrapunix.o writable_timeo.o writen.o
ar: 正在创建 ../libunpipc.a
a - daemon_inetd.o
a - daemon_init.o
a - error.o
a - gf_time.o
a - lock_reg.o
a - lock_test.o
a - my_shm.o
a - px_ipc_name.o
a - readable_timeo.o
a - readline.o
a - readn.o
a - set_concurrency.o
a - set_nonblock.o
a - signal.o
a - signal_intr.o
a - sleep_us.o
a - signal_rt.o
a - signal_rt_intr.o
a - timing.o
a - tv_sub.o
a - wrappthread.o
a - wrapsunrpc.o
a - wrapstdio.o
a - wrapunix.o
a - writable_timeo.o
a - writen.o
ranlib ../libunpipc.a


后面正常

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值