コンパイルエラーメッセージ いろいろ

C言語では文法が厳密に決められており,文法が正しいか正しくないかがコンパイラによって文字通り機械的に判定される.
エラーの種類が無数にあるので,エラーメッセージの数も多くあるが,ここでは代表的な例を示す.

エラーとなる文法自体はC言語で決められているが,エラーメッセージはコンパイラ依存なので,ここではbcc32(Embarcadero C++ 6.70) での例を示す.

例1

例えば,以下のソースコードをコンパイルしよう.


#include <stdio.h>

int main(void)
{
    printf("Hello, world!\n")    /* ここに;付け忘れ */
    return 0;
}
z:\.windows2000>bcc32 test.cpp
Embarcadero C++ 6.70 for Win32 Copyright (c) 1993-2013 Embarcadero Technologies,
 Inc.
test.cpp:
エラー E2379 test.cpp 5: ステートメントにセミコロン (;) がない (関数 main() )
*** 1 個のエラーがコンパイル中に発生しました ***

上記は行末のセミコロンを付け忘れた際に出るエラーメッセージである.

エラーの行を順に詳しく見てみると,

となり,この場合は5行目に;を追加し,「保存」「再度コンパイル(bcc32)」すれば、正しい実行ファイルが生成される.

例2


#include <stdio.h>

int main(void)
{
    printf("Hello, world!\n );    /* "の閉じ忘れ */
    return 0;
}
z:\.windows2000>bcc32 test.cpp
Embarcadero C++ 6.70 for Win32 Copyright (c) 1993-2013 Embarcadero Technologies,
 Inc.
test.cpp:
エラー E2380 test.cpp 5: 文字列または文字定数が閉じていない (関数 main() )
エラー E2121 test.cpp 6: 関数呼び出しに ) がない (関数 main() )
*** 2 個のエラーがコンパイル中に発生しました ***

この例では,ダブルクオーテーションの閉じ忘れである.
このように,一つのエラーに対して複数のエラーメッセージが出る場合があるので, まず最初のエラーメッセージに対応し,いったん保存・再コンパイルしよう.
再度エラーが出るようであれば,順次,先頭のエラーに対応して修正を繰り返す.