1. ホーム
  2. c++

[解決済み】"Main "の複数の定義

2022-02-08 01:35:33

質問

C++を学ぶにあたり、実際のウェブサイトにあるC++マニュアルを見ながら勉強しています。DevC++を使用していますが、コンパイラのエラーなのかそうでないのかわからない問題にぶつかりました。

私はこのコードを少しずつ自分で入力していきました。その方が生産的だと思ったので、例題に私自身が学んだことを加えていきました。これはC++のマニュアルに載っているコードです。

#include <iostream>

using namespace std;
int main ()
{
    int a=5;     // initial value = 5
    int b(2);    // initial value = 2
    int result;  // initial value undetermined

    a = a + 3;
    result = a - b;
    cout << result;

    return 0;
}

これは、" Multiple definitions of "Main"" というコンパイラーエラーをポップアップ表示します。 これは実際のC++のページにあるものなので、コンパイラーエラーだと思われます。

なぜこのようなことが起こるのか、このエラーの原因は何なのか、どなたか正しい方向を示していただけませんか。

解決方法を教えてください。

main"の定義が複数ある場合、mainの定義がもう一つあることを示唆しています。おそらく、プロジェクト内の別の.cまたは.cppファイルで定義されているのでしょう。同じ名前とシグネチャ(パラメータの型)を持つ関数は1つしか持つことができません。また、main は非常に特殊なので、エントリポイントとして使用できる main 関数(パラメータがないか、int が 1 つ、または int と char** が 1 つ)は、プロジェクト内で 1 つしか持つことができないようになっています。

追伸:厳密にはこれはリンカーエラーです。微妙な違いですが、基本的には、同じ名前の定義が複数あるため、リンカがどの関数をエントリポイントにすべきかを判断できないことを訴えているのです。