我正在构建一个程序,需要一个函数来检查鼠标是否在一个对象上。我编写了该函数并创建了一个新的.hpp-File,因为我项目中的多个文件将使用该函数。文件名为HitboxDetec.hpp
。我在其中写的函数看起来像这样:
bool isClicked(sf::Sprite* Sprite, sf::RenderWindow* pW)
{
int MOUSE_X = sf::Mouse::getPosition(*pW).x;
int MOUSE_Y = sf::Mouse::getPosition(*pW).y;
if (MOUSE_X >= Sprite->getPosition().x &&
MOUSE_X <= Sprite->getPosition().x + Sprite->getPosition().x + 500 &&
MOUSE_Y >= Sprite->getPosition().y &&
MOUSE_Y <= Sprite->getPosition().y + Sprite->getPosition().y + 500)
{
return true;
}
else return false;
}
我包含了所需的库等,代码可以工作(我通过在.cpp-File中声明函数来测试它。)
在我的.cpp文件中,我包含了CookieDetec.hpp
- 文件,并使用
if(isClicked(pSprite, pW)) {Stuff}
当我编译程序时,它只给我一个LNK2005-Error。我该如何解决这个问题?
答案 0 :(得分:2)
LNK2005适用于:
vector<IEntity*>
如果您在头文件中定义了函数,那么它可能包含在多个翻译单元中。要防止多个定义,请将此函数标记为内联:
The given symbol, displayed in its decorated form, was multiply defined.