Formular una preguntaFormular una pregunta
 

Respondidaerror LNK2005: _main already defined

  • martes, 04 de julio de 2006 4:08GKW82 Medallas del usuarioMedallas del usuarioMedallas del usuarioMedallas del usuarioMedallas del usuario
     

    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

Respuestas

  • martes, 04 de julio de 2006 5:37cythe Medallas del usuarioMedallas del usuarioMedallas del usuarioMedallas del usuarioMedallas del usuario
     Respondida

    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 las respuestas

  • martes, 04 de julio de 2006 5:37cythe Medallas del usuarioMedallas del usuarioMedallas del usuarioMedallas del usuarioMedallas del usuario
     Respondida

    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

  • miércoles, 05 de julio de 2006 23:26GKW82 Medallas del usuarioMedallas del usuarioMedallas del usuarioMedallas del usuarioMedallas del usuario
     

    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

  • jueves, 06 de julio de 2006 1:39郭郭 Medallas del usuarioMedallas del usuarioMedallas del usuarioMedallas del usuarioMedallas del usuario
     

    Delete area.cpp and creat it.

    Do the thing above.

  • jueves, 06 de julio de 2006 4:06GKW82 Medallas del usuarioMedallas del usuarioMedallas del usuarioMedallas del usuarioMedallas del usuario
     

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

    GKW82

  • jueves, 06 de julio de 2006 5:24Sunil_D Medallas del usuarioMedallas del usuarioMedallas del usuarioMedallas del usuarioMedallas del usuario
     
    Pls. paste the hello.cpp code
  • jueves, 06 de julio de 2006 6:24cythe Medallas del usuarioMedallas del usuarioMedallas del usuarioMedallas del usuarioMedallas del usuario
     

    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.

  • viernes, 07 de julio de 2006 16:49GKW82 Medallas del usuarioMedallas del usuarioMedallas del usuarioMedallas del usuarioMedallas del usuario
     

    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

  • viernes, 07 de julio de 2006 17:59James Kelly Medallas del usuarioMedallas del usuarioMedallas del usuarioMedallas del usuarioMedallas del usuario
     

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

    }

  • viernes, 07 de julio de 2006 23:46GKW82 Medallas del usuarioMedallas del usuarioMedallas del usuarioMedallas del usuarioMedallas del usuario
     

    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, 08 de julio de 2006 15:37James Kelly Medallas del usuarioMedallas del usuarioMedallas del usuarioMedallas del usuarioMedallas del usuario
     

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