好久沒有用過qmail了,近日安裝一臺qmail郵件服務器,在一陣Patch,make setup check后出錯,編譯不通過!提示如下:
overmaildirquota.c:32: warning: data definition has no type or storage class
overmaildirquota.c:33: error: parse error before '}' token
overmaildirquota.c:36: error: redefinition of `ret_value'
overmaildirquota.c:32: error: `ret_value' previously defined here
overmaildirquota.c:36: warning: data definition has no type or storage class
overmaildirquota.c:37: error: parse error before '}' token
make: *** [overmaildirquota.o] Error 1
語法錯誤,這問題有點奇怪,之前用Redhat9安裝,沒出現過此類問題.
網上搜了一下,發現原來是某些gcc加強了語法的檢測,以前允許定義字符串常量跨行,現在跨行的話,必須使用/,
而在Maildir++的補丁的overmaildirquota.c里面,有這么一行:
static const char rcsid[]="$Id: overquota.c,v 1.0 2002/06/09 16:21:05 mr
sam Exp $";
在mr后面就換行了,CentOS4.4的gcc 編譯不通過,
你需要改成:
static const char rcsid[]="$Id: overquota.c,v 1.0 2002/06/09 16:21:05 mrsam_patchByIpaddr Exp $";
(刪除后面的回車,將字符串常量改成一行即可.)
再次編譯通過.