Definition & Implementation Always Causes Linker Errors

I'm making a simple game in c++, using Visual Studio.

I have a bunch of functions for various things on a file called "engine.h" and then in "main.cpp" I have actual game stuff (levels and map)

I've been trying to put these into classes and then separate the classes into files and include the header files (I think this is called definition and implementation or something like that.)

But every time I try to do this, I get a ton of LINKER errors and have no choice to revert to the 1 header file system. The Linker errors are mostly "LNK2005" and "LNK2001"

Does anyone know how to do this properly? Other than organization, are there any other adverse affects of having all my functions on one header file?

Thanks!

EDIT: Here is my error console

Severity Code Description Project File Line Suppression State Error LNK1169 one or more multiply defined symbols found Game_Multi_File C:\Dev\Game_Multi_File\Debug\Game_Multi_File.exe 1
Error LNK2005 "struct SDL_Window * window" (?window@@3PAUSDL_Window@@A) already defined in build.obj Game_Multi_File C:\Dev\Game_Multi_File\Game_Multi_File\saving.obj 1
Error LNK2005 "struct SDL_Renderer * renderer" (?renderer@@3PAUSDL_Renderer@@A) already defined in build.obj Game_Multi_File C:\Dev\Game_Multi_File\Game_Multi_File\saving.obj 1
Error LNK2005 "int playerY" (?playerY@@3HA) already defined in build.obj Game_Multi_File C:\Dev\Game_Multi_File\Game_Multi_File\saving.obj 1
Error LNK2005 "int playerX" (?playerX@@3HA) already defined in build.obj Game_Multi_File C:\Dev\Game_Multi_File\Game_Multi_File\saving.obj 1
Error LNK2005 "int playerStrength" (?playerStrength@@3HA) already defined in build.obj Game_Multi_File C:\Dev\Game_Multi_File\Game_Multi_File\saving.obj 1
Error LNK2005 "int playerResistance" (?playerResistance@@3HA) already defined in build.obj Game_Multi_File C:\Dev\Game_Multi_File\Game_Multi_File\saving.obj 1
Error LNK2005 "int playerIntelligence" (?playerIntelligence@@3HA) already defined in build.obj Game_Multi_File C:\Dev\Game_Multi_File\Game_Multi_File\saving.obj 1
Error LNK2005 "int playerHealth" (?playerHealth@@3HA) already defined in build.obj Game_Multi_File C:\Dev\Game_Multi_File\Game_Multi_File\saving.obj 1
Error LNK2005 "int playerFlee" (?playerFlee@@3HA) already defined in build.obj Game_Multi_File C:\Dev\Game_Multi_File\Game_Multi_File\saving.obj 1
Error LNK2005 "int playerCurrency" (?playerCurrency@@3HA) already defined in build.obj Game_Multi_File C:\Dev\Game_Multi_File\Game_Multi_File\saving.obj 1
Error LNK2005 "int playerChase" (?playerChase@@3HA) already defined in build.obj Game_Multi_File C:\Dev\Game_Multi_File\Game_Multi_File\saving.obj 1
Error LNK2005 "int playedFlag" (?playedFlag@@3HA) already defined in build.obj Game_Multi_File C:\Dev\Game_Multi_File\Game_Multi_File\saving.obj 1
Error LNK2005 "int placeHolderConfig" (?placeHolderConfig@@3HA) already defined in build.obj Game_Multi_File C:\Dev\Game_Multi_File\Game_Multi_File\saving.obj 1
Error LNK2005 "int fullscreen" (?fullscreen@@3HA) already defined in build.obj Game_Multi_File C:\Dev\Game_Multi_File\Game_Multi_File\saving.obj 1
Error LNK2005 "int continueKey" (?continueKey@@3HA) already defined in build.obj Game_Multi_File C:\Dev\Game_Multi_File\Game_Multi_File\saving.obj 1
Error LNK2005 "int checkpointY" (?checkpointY@@3HA) already defined in build.obj Game_Multi_File C:\Dev\Game_Multi_File\Game_Multi_File\saving.obj 1
Error LNK2005 "int checkpointX" (?checkpointX@@3HA) already defined in build.obj Game_Multi_File C:\Dev\Game_Multi_File\Game_Multi_File\saving.obj 1
Error LNK2005 "float resizeValue" (?resizeValue@@3MA) already defined in build.obj Game_Multi_File C:\Dev\Game_Multi_File\Game_Multi_File\saving.obj 1
Error LNK2005 "class std::basic_fstream > playerData" (?playerData@@3V?$basic_fstream@DU?$char_traits@D@std@@@std@@A) already defined in build.obj Game_Multi_File C:\Dev\Game_Multi_File\Game_Multi_File\saving.obj 1
Error LNK2005 "class std::basic_fstream > config" (?config@@3V?$basic_fstream@DU?$char_traits@D@std@@@std@@A) already defined in build.obj Game_Multi_File C:\Dev\Game_Multi_File\Game_Multi_File\saving.obj 1

• You'll need to post an example of the exact error message you're getting (including the real file names involved), and then explain how your project is set up. There are a number of things that can go wrong and cause this error. – user1118321 Dec 10 '17 at 6:51
• Linker errors can be caused by many things. Most of the times it's because you are declaring a function, but you are not defining it anywhere(/or the linker can't find it). It would be easier to help you, if you include some screenshots of the error console, so that more people can understand the problem and help you diagnose it ;) – user100681 Dec 10 '17 at 7:48
• @GabrieleVierti Ok, the thing is I reverted back to my old system when it didn't work. I'll have to redo it, and then go from there. – Eyesight Technology Dec 10 '17 at 18:07
• @GabrieleVierti So I know it's been I while, but I've managed to replicate the error. (On a smaller scale. I haven't implemented EVERYTHING yet, just a few files as a test.) I have edited my original post to include my error console. – Eyesight Technology Dec 16 '17 at 18:39