1. ホーム
  2. Web プログラミング
  3. その他全般

[解決済み】「collect2: error: ld returned 1 exit status」とはどういう意味ですか?

2021-12-28 15:22:32

質問

以下のコードを実行すると

void main() {
  char i;

  printf("ENTER i");
  scanf("%c",&i);

  clrscr();

  switch(i) {
    default:
      printf("\nHi..\n");
      break;
    case 1:
      printf("\n\na");
      break;
    case 2:
      printf("\nb\n");
      break;
    case 3:
      printf("\nc");
      break;
  }
}

とエラーが出ました。

main.c:(.text+0x33): undefined reference to `clrscr'                       
collect2: error: ld returned 1 exit status 

解決方法は?

その ld returned 1 exit status のエラーは、以前のエラーの結果です。あなたのコードによると、以前のエラー - があります。 undefined reference to 'clrscr' - であり、こちらが本命です。終了ステータスエラーは、ビルドプロセスのリンクステップで何らかのエラーが発生したことを知らせるだけのものです。通常、終了ステータスは、成功した場合は0、失敗した場合は>0となります。

プログラムをビルドする際、複数のツールを別々の手順で実行し、最終的な実行ファイルを作成することがあります。あなたの場合、それらのツールの1つが ld は、最初に見つけたエラーを報告します ( clrscr の参照がない)、そして、終了ステータスを返します。終了ステータスは> 0なので、エラーを意味し、報告されます。

一般に、ツールが返す終了ステータスは、遭遇したエラーの数である。したがって、終了ステータスが2である場合、そのツールは ld ツールは2つのエラーを発見しました。