我正在研究我认真的c ++程序。自从我参加任何课程以来已经有一段时间了,所以我有点生疏了。当开始游戏循环的基本实现时(在花费很多东西让SFML工作之后),我不断遇到问题。过了一会儿,我在尝试定义构造函数时得到了我的问题列表。尝试编译时出现以下错误。
1> game.obj:错误LNK2005:“public:__ thiscall game :: game(void)” (?? 0game @@ QAE @ XZ)已在main.obj中定义
1> game.obj:错误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;
}
我不知道为什么我遇到这个错误。任何帮助都会很好,因为我想开始我的项目。
答案 0 :(得分:7)
您应该在main中包含#include "game.h"
,而不是game.cpp
。