1

当我在 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 中成功生成和编译,没有错误。知道如何解决这个问题吗?

4

0 回答 0