Fazer uma PerguntaFazer uma Pergunta
 

Respondidoerror LNK2005: _main already defined

  • terça-feira, 4 de julho de 2006 4:08GKW82 Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     

    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

Respostas

  • terça-feira, 4 de julho de 2006 5:37cythe Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     Respondido

    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

Todas as Respostas

  • terça-feira, 4 de julho de 2006 5:37cythe Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     Respondido

    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

  • quarta-feira, 5 de julho de 2006 23:26GKW82 Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     

    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

  • quinta-feira, 6 de julho de 2006 1:39郭郭 Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     

    Delete area.cpp and creat it.

    Do the thing above.

  • quinta-feira, 6 de julho de 2006 4:06GKW82 Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     

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

    GKW82

  • quinta-feira, 6 de julho de 2006 5:24Sunil_D Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     
    Pls. paste the hello.cpp code
  • quinta-feira, 6 de julho de 2006 6:24cythe Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     

    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.

  • sexta-feira, 7 de julho de 2006 16:49GKW82 Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     

    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

  • sexta-feira, 7 de julho de 2006 17:59James Kelly Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     

    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");

    }

  • sexta-feira, 7 de julho de 2006 23:46GKW82 Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     

    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.

     

     

  • sábado, 8 de julho de 2006 15:37James Kelly Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     

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