1. ホーム
  2. c

[解決済み] Linux ターミナル - エラー: 複合文の末尾にラベルがあります。

2022-02-01 18:05:27

質問

仮想マシンとして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
      }
    }

どうすればいいのでしょうか?

解決方法は?

エラーが発生した原因 label at end of compound statementdefault ケースを空にすることはできません。 break または ; 空のステートメント。

編集 : そのテーマで資料を探すと、それが出てきました。 https://mail.gnome.org/archives/evolution-patches/2004-April/msg00235.html コンパイラgcc3.4の問題です。 default gcc3.3では警告が出ていたのですが、gcc4.8.2でテストしたところ、正常に動作しています。