Chinaunix首页 | 论坛 | 博客
  • 博客访问: 104574136
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-03-26 19:25:59

作者:sunlan  出处:Unix爱好者家园unix-cd.com   
前段时间发了一个帖子介绍在SCO OpenServer下如何编译及使用CVS,现在再补充一下UnixWare下CVS的编译方法。

在UnixWare下如不对代码进行修改直接编译,会产生一堆下面的错误信息:
UX:acomp: ERROR: "buffer.c", line 65: undefined struct/union member: _shutdown
UX:acomp: WARNING: "buffer.c", line 65: improper pointer/integer combination: op "="
UX:acomp: ERROR: "buffer.c", line 1244: undefined struct/union member: _shutdown
UX:acomp: WARNING: "buffer.c", line 1245: improper member use: _shutdown
UX:acomp: ERROR: "buffer.c", line 1245: cannot dereference non-pointer type
UX:acomp: ERROR: "buffer.c", line 1245: function designator is not of function type
UX:acomp: WARNING: "buffer.c", line 1245: improper pointer/integer combination:op "="
UX:acomp: ERROR: "buffer.c", line 1300: undefined struct/union member: _shutdown
UX:acomp: WARNING: "buffer.c", line 1300: improper pointer/integer combination:op "=="
这是由于在struct buffer中定义了一个函数指针int (*shutdown) PROTO((struct buffer *))引起的。根据判断,这可能是由于UnixWare的编译器将shutdown作为保留关键字引起的。我们的解决办法是将struct buffer中的shutdown更名,例如改成buffer_shutdown。具体的做法如下:
1.修改src/buffer.h第78行:
        int (*shutdown) PROTO((struct buffer *));
改为
        int (*buffer_shutdown) PROTO((struct buffer *));
2.修改src/buffer.c,将其中对buffer成员函数指针shutdown的引用改为buffer_shutdown。采用的办法是全文替换:
        :1,$ s/->shutdown/->buffer_shutdown/g
在完成上述操作后,重新执行make,即可顺利完成编译。

其他的安装及配置与OpenServer下的一致。
阅读(469) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~