Joe*_*ill 2 c++ visual-studio-2012
我从未在代码块中遇到此问题,但在Visual Studio类中却给我错误LNK2005 ...已经在xx.obj中定义。我已经阅读了很多答案,其中大多数都说使用'extern',我认为这在成员函数上不可用
Error: 1>Source.obj : error LNK2005: "public: __thiscall Game::Game(void)" (??0Game@@QAE@XZ) already defined in game.obj
Error: fatal error LNK1169: one or more multiply defined symbols found
Run Code Online (Sandbox Code Playgroud)
如何解决此问题而又不强求/不允许多个定义?
//game.h
#ifndef GAME_H
#define GAME_H
#include <SFML/Graphics.hpp>
class Game
{
public:
Game();
private:
sf::RenderWindow mWindow;
sf::CircleShape mPlayer;
};
#endif
Run Code Online (Sandbox Code Playgroud)
。
//game.cpp
#include "..\Headers\game.h"
Game::Game()
: mWindow(sf::VideoMode(640, 480), "Beginning")
, mPlayer()
{
mPlayer.setRadius(40.f);
mPlayer.setPosition(100.f, 100.f);
mPlayer.setFillColor(sf::Color::Cyan);
}
Run Code Online (Sandbox Code Playgroud)
。
//source.cpp
#include "game.cpp"
int main()
{
Game game;
}
Run Code Online (Sandbox Code Playgroud)
小智 5
替换为您的source.cpp
#include "game.cpp"
Run Code Online (Sandbox Code Playgroud)
通过
#include "game.h"
Run Code Online (Sandbox Code Playgroud)
您永远不应包含* .cpp。
| 归档时间: |
|
| 查看次数: |
782 次 |
| 最近记录: |