Part of the Khronos Group
OpenGL.org

The Industry's Foundation for High Performance Graphics

from games to virtual reality, mobile phones to supercomputers

Results 1 to 2 of 2

Thread: MSVC++ linking question

  1. #1
    Intern Contributor
    Join Date
    Sep 2000
    Location
    Copenhagen, Denmark
    Posts
    61

    MSVC++ linking question

    Hi all

    This is not an openGL question as such, more like a general coding question. But since there are so many smart people here, perhaps you can help me anyway . My problem is the following:

    I am maiking a loader for the md3 format and have the following files:
    main.h, main.cpp, md3.h and md3.cpp. Main.h includes md3.h. In md3.h I have declared a 3-dimensional array of floats like this: float n[256][256][0];
    Now, when I execute the program it gives me a link error: MD3.obj : error LNK2005: "float (* n)[256][3]" (?n@@3PAY1BAA@2MA) already defined in main.obj

    If I put the array in md3.cpp, there is no problem, but it is a bit of a hack, so... I'm supposing it has something to do with me including md3.h in main.h, but that seems to be a necescity, so what do I do? Should "global" variables be put in the cpp-files as a rule or what? I am not terribly good at, what should be included where, and any larger programs I write tend to cause such problems, so any insight you have, either general or on my specific problem would be greatly appreciated.

    Regards Anders

  2. #2
    Member Regular Contributor
    Join Date
    Apr 2001
    Posts
    354

    Re: MSVC++ linking question

    You can put your global variable in a .cpp and an extern in the corresponding .h

    example:

    in md3.cpp:
    int GLOBAL_INT;
    in md3.h:
    extern int GLOBAL_INT;

    this way wherever you include md3.h you can access your global int

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •