好久没有用过qmail了,近日安装一台qmail邮件服务器,在一阵Patch,makesetupcheck后出错,编译不通过!提示如下:
overmaildirquota.c:32:warning:datadefinitionhasnotypeorstorageclass
overmaildirquota.c:33:error:parseerrorbefore'}'token
overmaildirquota.c:36:error:redefinitionof`ret_value'
overmaildirquota.c:32:error:`ret_value'previouslydefinedhere
overmaildirquota.c:36:warning:datadefinitionhasnotypeorstorageclass
overmaildirquota.c:37:error:parseerrorbefore'}'token
make:***[overmaildirquota.o]Error1
语法错误,这问题有点奇怪,之前用Redhat9安装,没出现过此类问题.
网上搜了一下,发现原来是某些gcc加强了语法的检测,以前允许定义字符串常量跨行,现在跨行的话,必须使用,
而在Maildir++的补丁的overmaildirquota.c里面,有这么一行:
staticconstcharrcsid[]="$Id:overquota.c,v1.02002/06/0916:21:05mr
samExp$";
在mr后面就换行了,CentOS4.4的gcc编译不通过,
你需要改成:
staticconstcharrcsid[]="$Id:overquota.c,v1.02002/06/0916:21:05mrsam_patchByIpaddrExp$";
(删除后面的回车,将字符串常量改成一行即可.)
再次编译通过.