Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Multiple definitions of "Main"

Tags:

c++

In the journey to learning C++ im learning through the C++ Manual thats on the actual website. Im using DevC++ and have hit a problem, not knowing whether its the compilers error or not.

I was going through this code bit by bit typing it in myself, as I feel its more productive, and adding my own stuff that ive learnt to the examples, then I get to initialising variables. This is the code that is in the C++ manual

#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;
}

This is popping up a compiler error saying " Multiple definitions of "Main"" Now This is on the actual C++ page so im guessing its a compiler error.

Could someone please point me in the right direction as to why this is happening and what is the cause for this error.

like image 201
Jsp1304 Avatar asked Oct 13 '12 07:10

Jsp1304


2 Answers

Multiple definitions of "main" suggests that you have another definition of main. Perhaps in another .c or .cpp file in your project. You can only have one function with the same name and signature (parameter types). Also, main is very special so you can only have one main function that can be used as the entry point (has either no parameters, one int, or an int and a char**) in your project.

P.S. Technically this is a linker error. It's a subtle difference, but basically it's complaining that the linker can't determine which function should be the entry point, because there's more than one definition with the same name.

like image 176
CrazyCasta Avatar answered Oct 14 '22 02:10

CrazyCasta


Found I had two file references in my tasks.json file that were causing this error and which took me a long time to figure out. Hope this helps someone else..... See "HERE*****" below:

     "-I/usr/include/glib-2.0",
            "-I/usr/lib/x86_64-linux-gnu/glib-2.0/include",

        //"${file}",           //HERE**********************

            "-lgtk-3",
            "-lgdk-3",
            "-lpangocairo-1.0",
            "-lpango-1.0",
            "-lharfbuzz",
            "-latk-1.0",
            "-lcairo-gobject",
            "-lcairo",
            "-lgdk_pixbuf-2.0",
            "-lgio-2.0",
            "-lgobject-2.0",
            "-lglib-2.0",
        "-o",
        "${fileDirname}/${fileBasenameNoExtension}" //HERE*************

        ],
like image 43
Jim Stokes Avatar answered Oct 14 '22 00:10

Jim Stokes