Q:

Very Quick Globals.h Question (with it included, some of the items still come up undefined)

using globals.h im hoping to store a vector of rectangles and also a collision box and a few global bools
globals.h
extern SDL_Rect winRect;

extern std::vector<SDL_Rect> platform;

extern bool paused;
extern bool exit;

i can set the bool to false as so in the globals.cpp.
bool paused = false;
bool exit = false;

however then when i try and use the global winRect SDL_Rect or the global vector of SDL_Rects the compiler spits out the "undefined reference to platform" or "to winRect". which i cant understand because they are set up in the globals.h file, and the globals.h is included within the class header that is trying to use them
do i need to define anything else regarding the vector and rect in the globals.cpp file?
might there be something wrong with the order of my header inclusions for the class im trying to manipulate the globals with?
hope there is an easy solution to this, im sure im just missing something.

A:

You need to define winRect and platform in globals.cpp:
SDL_Rect winRect;

std::vector<SDL_Rect> platform;

bool paused = false;
bool exit = false;

Extern only tells the compiler that the variable and/or the function is defined in another place and if you do not define it, the linker will give you an error because it cannot find the definition.

