This question already has answers here:
What happens with an extern inline function?
(2个答案)
6年前关闭。
我做了一个看起来像这样的函数:
但是在执行此操作时,出现链接器错误消息:
但是,当我删除
为什么会这样?
(2个答案)
6年前关闭。
我做了一个看起来像这样的函数:
//hpp
extern std::array<CPlayer, MAX_PLAYERS> PlayerArray;
inline CPlayer& Player(int playerid);
//cpp
std::array<CPlayer, MAX_PLAYERS> PlayerArray;
inline CPlayer& Player(int playerid)
{
return PlayerArray[playerid];
}
但是在执行此操作时,出现链接器错误消息:
error LNK2001: unresolved external symbol "class CPlayer & __cdecl Player(int)" (?Player@@YAAAVCPlayer@@H@Z)
但是,当我删除
inline
关键字时,一切都可以正常编译。为什么会这样?
最佳答案
将函数get内联,并作为独立函数从二进制文件中有效删除。
将实现移至 header 即可解决此问题。
关于c++ - 内联函数时链接器错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21115570/
10-10 21:19