I would wager that you're making two mistakes. First, you aren't putting inclusion guards on your headers. They look like this.
Code:
#ifndef SOME_UNIQUE_SYMBOL
#define SOME_UNIQUE_SYMBOL
// Everything for the header here
#endif
Second, you have a definition in one of your headers. You should avoid that by only placing declarations in the header file and then defining those names in a source file.
Code:
// globals.h
extern room *current_room;
Code:
// globals.cpp
room *current_room = 0;
Include globals.h everywhere you need current_room, then compile and link with globals.cpp as you would any other source file. I could be wrong in what your problem is, but following those two guidelines will save you headaches later even if it isn't your current problem.