LNK2005在.hpp文件中声明函数时出错
LNK2005-Error when declaring a function in a .hpp-File
我正在构建一个程序,需要一个函数来检查鼠标是否在对象上。我编写了这个函数并创建了一个新的.hpp文件,因为我的项目中有多个文件将使用这个函数。该文件名为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文件中声明函数来测试它)
在.cpp文件中,我包含了CookieDetec.hpp
-文件,并用调用它
if(isClicked(pSprite, pW)) {Stuff}
当我编译程序时,它只会给我一个LNK2005错误。我该怎么解决这个问题?
LNK2005用于:
The given symbol, displayed in its decorated form, was multiply defined.
如果您在头文件中定义了函数,那么它可能包含在多个翻译单元中。为了防止多个定义将此函数标记为内联:
inline bool isClicked(sf::Sprite* Sprite, sf::RenderWindow* pW)
^^^^^^
相关文章:
- 类中私有结构的构造函数出错
- 字符串验证函数出错
- 我的类默认构造函数出错
- Dev-C++和Code::Blocks中的析构函数出错
- int对的哈希函数出错
- MSVC 编译器错误导致迭代器和友元函数出错
- 复制构造函数出错
- 使用 WinSock2 开发,使用 CreateThread() 函数出错
- 链接列表的Push_back函数出错
- 结构初始化中的隐式复制构造函数出错
- 异步函数出错
- 编译器错误消息错误:令牌之前的预期')' '*'。我的构造函数出错
- c++中使用std::bind和std::函数出错
- 在vector排序中使用c++模板函数出错
- 使用std::for_each lambda函数出错
- 二叉搜索树插入函数出错
- 调用类的函数出错
- c++使用删除函数出错
- 使用已删除的函数出错
- 调用构造函数出错