0

我正在研究我的严肃 C++ 程序。我已经有一段时间没有上课了,所以我有点生疏了。在开始游戏循环的基本实现时(在花费了永远让 SFML 工作之后),我不断遇到问题。一段时间后,我在尝试定义构造函数时将问题列表归结为错误。尝试编译时出现以下错误。

1>game.obj : error LNK2005: "public: __thiscall game::game(void)" (??0game@@QAE@XZ) 已经在 main.obj 中定义

1>game.obj : error LNK2005: "public: void __thiscall game::gameLoop(void)" (?gameLoop@game@@QAEXXZ) 已经在 main.obj 中定义

我的主要代码是

#include <SFML/Graphics.hpp>

#include "game.cpp"

int main()
{
    return 0;
}

在game.h中

#ifndef _game_h
#define _game_h

class game
{
public:
     game();
    void gameLoop();
};

#endif

在game.cpp中是

#include <iostream>
#include "game.h"

game::game()
{
    std::cout << "Constructed thingie";
}

void game::gameLoop()
{
    std::cout << "RAN LOOP!" << std::endl;
}

我不知道为什么我会遇到这个错误。任何帮助都会很好,因为我想开始我的项目。

4

1 回答 1

7

您应该包含#include "game.h"在 main 中,而不是game.cpp.

于 2012-07-25T21:07:32.380 回答