Unresolved external symbol _main referenced
<p>i'm working on an intake assignment for a game development course but i'm stuck with an annoying error by visual studio after splitting my code into classes. The error states <code>LNK2019 unresolved external symbol _main referenced in function "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ)</code> So it should be something wrong in my main function. I've looked around and the most logical reason seemt to be wrong subsystem but that's set to console application. Here's my code:</p>

<p><strong>Main.cpp:</strong></p>

<pre><code>#include &lt;Box2D/Box2D.h&gt;
#include &lt;SFML/Graphics.hpp&gt;

#include "Game.hpp"

int main() {
    Game game; //Sets up the game

    game.populateWorld();

    while (game.window.isOpen()) {
        game.checkEvents();

        game.drawBodies();

        game.m_Player-&gt;movePlayer();

    }

    return 0;
}
</code></pre>

<p><strong>Game.hpp:</strong></p>

<pre><code>#ifndef Game_hpp
#define Game_hpp

#include &lt;SFML/Graphics.hpp&gt;
#include "World.hpp" 
#include "Player.hpp"
class Game {
public:
    Game();
    void checkEvents();
    void drawBodies();//Displays the bodies and keeps the view centered

    //Public data members to be used by other classes
    sf::Texture backGroundTexture;
    sf::Texture playerTex;
    sf::Texture platformTex;//Doesn't have a sprite declared since multiple copy's will be made
    sf::Sprite backGround;
    sf::Sprite player;
    sf::View view;
    sf::RenderWindow window;

    const float m_Scale;//Number of pixels per meter

    Player* m_Player = NULL;
    World* m_World = NULL;
    void populateWorld();
private:
    void loadResources();//Loads resources and applies them where needed
};
#endif // !Game_hpp
</code></pre>

<p><strong>World.hpp:</strong></p>

<pre><code>#ifndef World_hpp
#define World_hpp

#include &lt;Box2D/Box2D.h&gt;

class World {
public:
//Public member functions
    World(const float scale);
    ~World();
    void step();
    b2Body* spawnPlayer(float x, float y);

//Public data members
    b2World* world = NULL; //Points to the entire world! Handle with care ;)

    void createPlatform(b2Vec2 point);
private:
//Private data members
    b2Vec2 gravity;
    const float m_Scale;

    //Declaring step values
    float32 m_TimeStep;
    int32 m_VelocityIterators;
    int32 m_PositionIterators;
};

#endif // !World_hpp
</code></pre>

<p><strong>Player.hpp:</strong></p>

<pre><code>#ifndef Player_hpp
#define Player_hpp

#include &lt;Box2D/Box2D.h&gt;

#include "World.hpp"

class Player{

public:
    Player(World* world, const float scale, float x, float y);
    void movePlayer();
    b2Body* m_PlayerBody;//A pointer to the player Character's body needed      for the movement
private:
    World* m_World;
    const float m_Scale;
};

#endif // !Player_hpp
</code></pre>

<p>Hope anyone can point me in the right direction with what's going wrong :)</p>