MSDN > 論壇首頁 > Visual C++ Language > error LNK2005: _main already defined
發問發問
 

已答覆error LNK2005: _main already defined

  • Tuesday, 4 July, 2006 4:08GKW82 使用者勳章使用者勳章使用者勳章使用者勳章使用者勳章
     

    I recently installed VC++ 2005 EXP edition.

    1) I created a project name Radius and created two new items hello.cpp and area.cpp.

    2) area.cpp is the first item and hello.cpp is the second one.

    3) When I build the project Radius, I got the error

    LNK2005: _main already defined in area.obj

    Can you guide me to fix the compilation error.

    Thanks GKW82

解答

  • Tuesday, 4 July, 2006 5:37cythe 使用者勳章使用者勳章使用者勳章使用者勳章使用者勳章
     已答覆

    This error is because of multiple definitions of main. You must have defined main in area.cpp as well as in hello.cpp. In C/C++ programs, you can write only one main per application.

    Remove one definition of main and it should work fine.

    Cheers

所有回覆

  • Tuesday, 4 July, 2006 5:37cythe 使用者勳章使用者勳章使用者勳章使用者勳章使用者勳章
     已答覆

    This error is because of multiple definitions of main. You must have defined main in area.cpp as well as in hello.cpp. In C/C++ programs, you can write only one main per application.

    Remove one definition of main and it should work fine.

    Cheers

  • Wednesday, 5 July, 2006 23:26GKW82 使用者勳章使用者勳章使用者勳章使用者勳章使用者勳章
     

    Yes. I defined main() in both. I removed the main from hello and I am now getting the error

    hello.cpp(4) : error C2447: '{' : missing function header (old-style formal list?)

    GKW82

  • Thursday, 6 July, 2006 1:39郭郭 使用者勳章使用者勳章使用者勳章使用者勳章使用者勳章
     

    Delete area.cpp and creat it.

    Do the thing above.

  • Thursday, 6 July, 2006 4:06GKW82 使用者勳章使用者勳章使用者勳章使用者勳章使用者勳章
     

    Nope.. didn't work. Getting the same error.

    GKW82

  • Thursday, 6 July, 2006 5:24Sunil_D 使用者勳章使用者勳章使用者勳章使用者勳章使用者勳章
     
    Pls. paste the hello.cpp code
  • Thursday, 6 July, 2006 6:24cythe 使用者勳章使用者勳章使用者勳章使用者勳章使用者勳章
     

    This is what MSDN says :

    Error Message

    '{' : missing function header (old-style formal list?)

    An open brace occurs at global scope without a corresponding function header.

    This error can be caused by an old-style C-language formal list.

    The following sample generates C2447:

    int c;
    {}       // C2447

    Check whether you are writing the open brace without the function name.

    Else post the code.

  • Friday, 7 July, 2006 16:49GKW82 使用者勳章使用者勳章使用者勳章使用者勳章使用者勳章
     

    Here is the piece of code.

    1) radius.cpp

    #include <iostream>

    /* program to calculate radius of a circle */

    void main()

    {

    float area, radius;

    printf("Radius = ? ");

    scanf("%f", &radius);

    area = 3.14159 * radius * radius;

    printf("Area = %f", area);

    }

    2) hell.cpp

    include <iostream>

    {

    printf("Hello world\n");

    }

    c:\documents and settings\owner\my documents\visual studio 2005\projects\radius\radius\hello.cpp(4) : error C2447: '{' : missing function header (old-style formal list?)

    GKW82

  • Friday, 7 July, 2006 17:59James Kelly 使用者勳章使用者勳章使用者勳章使用者勳章使用者勳章
     

    Try the following....

    1) radius.cpp

    #include <iostream>

    /* program to calculate radius of a circle */

    void main()

    {

       float area, radius;

       printf("Radius = ? ");

       scanf("%f", &radius);

       area = 3.14159 * radius * radius;

       printf("Area = %f", area);

    }

    2) hell.cpp

    include <iostream>

    void function_name()  // <---------------------------- did you miss this out?

    {

       printf("Hello world\n");

    }

  • Friday, 7 July, 2006 23:46GKW82 使用者勳章使用者勳章使用者勳章使用者勳章使用者勳章
     

    The whole problem starts when I include the function main() in the hello.cpp. I end up in getting the message

    error LNK2005: _main already defined in hello.obj

    GKW82.

     

     

  • Saturday, 8 July, 2006 15:37James Kelly 使用者勳章使用者勳章使用者勳章使用者勳章使用者勳章
     

    I think what you are trying to do is....


    1.) File: hello.cpp

    #include <IOSTREAM>
    #include <RADIUS.H>
    
    int main(int argc, char *argv[])
    {
          float area = get_area(5);
          printf("Area of circle with radius %d = %f\n", 5, area);
    }
    

    2.) File: radius.h

    float get_area(float radius);
    float get_circumference(float radius);
    

    3.) File: radius.cpp

    #include <RADIUS.H>
    
    float get_area(float radius)
    {
         return (3.14159 * radius * radius);
    }
    
    float get_circumference(float radius)
    {
         return (3.14159 * (radius * 2));
    }