Linux终端 - 错误:复合语句末尾的标签

时间:2014-04-02 13:12:43

标签: c linux gcc terminal makefile

我通过VMware Player将x64 Ubuntu Linux用作虚拟机。作为我项目的一部分,我需要安装一些库(fec-3.0.1)。我是Linux新手,不擅长编码。

以下是配置成功后我在终端中遇到的错误:

    farhat@ubuntu:~/project/fatcaps_v0.5/fec-3.0.1$ make
    gcc -g -O2 -I. -Wall    -c -o dotprod.o dotprod.c
    dotprod.c: In function ‘freedp’:
    dotprod.c:56:3: error: label at end of compound statement
       default:
       ^
    make: *** [dotprod.o] Error 1

以下是功能' freedp' 内容(起始行为55):

    /* Free a dot product descriptor created earlier */
    void freedp(void *p){
      switch(Cpu_mode){
      case PORT:
      default:
    #ifdef __i386__
      case MMX:
      case SSE:
        return freedp_mmx(p);
      case SSE2:
        return freedp_sse2(p);
    #endif
    #ifdef __VEC__
      case ALTIVEC:
        return freedp_av(p);
    #endif
      }
    }

我该怎么办?

1 个答案:

答案 0 :(得分:14)

您遇到错误label at end of compound statement的原因是default案例不能为空,这意味着您必须提供break;空语句。< / p>

已编辑:我找到了关于该主题的一些材料,我得到了:https://mail.gnome.org/archives/evolution-patches/2004-April/msg00235.html,这是关于编译器gcc3.4的问题,它在{{1上报告错误没有语句,并且它在gcc3.3上发出警告,但现在,我在gcc4.8.2上测试,它没事....