当我在 Linux 5 中编译应用程序时,出现以下错误。
api_svc1.c:335:错误:case 标签不在 switch 语句中 api_svc1.c:340:错误:“default”标签不在 switch 语句中
c 程序 'api_svc1.c' 由 rpcgen 生成。在geberated 代码中找不到switch 语句。
代码片段如下:
result = (*local)((char *)&argument, rqstp);
if (result != NULL && !svc_sendreply(transp, (xdrproc_t) _xdr_result, result)) {
svcerr_systemerr (transp);
_exit (-1);
}
_exit (0);
case -1:
/*
* Error - fork couldn't create the child process, return
*/
svcerr_systemerr(transp);
default:
/*
* Parent process, clean up any zombie children and
* return to svc_run()
*/
svc_destroy(transp);
while (waitpid(-1,NULL,WNOHANG) > 0);
_rpcsvccount--;
_rpcsvcstate = _SERVED;
return;
相同的代码在 Solaris 中成功生成和编译,没有错误。知道如何解决这个问题吗?