我正在使用gcc 3.4.5编译TCL 7.6p2。我使用的是CentOS 5.5。我在make命令中遇到以下错误:
./../generic/tclPosixStr.c: In function `Tcl_ErrnoId':
./../generic/tclPosixStr.c:340: error: duplicate case value
./../generic/tclPosixStr.c:328: error: previously used here
./../generic/tclPosixStr.c: In function `Tcl_ErrnoMsg':
./../generic/tclPosixStr.c:787: error: duplicate case value
./../generic/tclPosixStr.c:775: error: previously used here
make: *** [tclPosixStr.o] Error 1
任何提示都将不胜感激。感谢。
答案 0 :(得分:2)
您尝试使用多年未获得支持的 古代 版本。因此,您最好的方法是破解源代码,以便从那些switch
语句中注释掉有问题的案例。 或切换到有人可能会支持的事情(但这是你的电话)。
详细说明:看来EOPNOTSUPP与ENOTSUP的值相同;将与EOPNOTSUPP关联的三行(或至少包含case
的行;或周围的#ifdef
机器无关)注释掉,以使问题消失。或者您可以向后移动所有非antediluvian版本中存在的更改,即改进#ifdef
行到此:
#if defined(EOPNOTSUPP) && (!defined(ENOTSUP) || (ENOTSUP != EOPNOTSUPP))
尽管如此,不要将此报告为错误。 不支持Tcl 7.6p2。