Original Post
Hi. I've had the functions for my main menu and actual ingame engine of my game in the same C++ source for a while, and I decided to move it, as it would help unload resources that the engine didn't need. So I did the #ifndef thing on all of my header files, and moved my engine function, plus all of its variables. Then I made a header included in both files, where "tells" the main menu about the engine function (via int engine( int argc, char* args[] ); ). So I try to compile, and get 26 errors like this. Error 3 error LNK2005: "public: __thiscall Timer::Timer(void)" (??0Timer@@QAE@XZ) already defined in main.obj engine.obj Metroid Walrus Error 18 error LNK2005: "public: int __thiscall Tile::get_type(void)" (?get_type@Tile@@QAEHXZ) already defined in main.obj engine.obj Metroid Walrus Error 26 error LNK2005: "class Timer fpstimer" (?fpstimer@@3VTimer@@A) already defined in main.obj engine.obj Metroid Walrus Error 28 fatal error LNK1169: one or more multiply defined symbols found C:\Users\Shawn\Documents\Visual Studio 2008\Projects\Metroid Walrus\Debug\Metroid Walrus.exe Metroid Walrus Error 27 error LNK2005: "class Timer metanim" (?metanim@@3VTimer@@A) already defined in main.obj engine.obj Metroid Walrus What could the problem be? Especially that last one, since metanim (the last error) doesn't EXIST in engine.obj. Thanks in advance, I know I'm a noob at multiple source files. :P EDIT : By the way, feel free to request the source if you really need it to tell the problem, but I'll have to send you it via a link in PM, since 'alot of H files. (10)