我得到了以下声明:
// file MadaPacket.h
class MadaPacket
{
// ....
public:
inline static bool word_is_header(int w);
}作为记者的声明:
// file MadaPacket.cpp
#include "MadaPacket.h"
inline bool MadaPacket::word_is_header(int w)
{
return w == 0xFBBA;
}MSVC12构建器在链接中失败,原因如下:
未解决的外部符号"public:静态bool __cdecl MadaPacket::word_is_header(int)“
将static添加到定义推送错误
在文件范围内定义的成员函数不应使用“静态”
从定义中删除inline推送错误
未解决的外部符号"public:静态bool __cdecl MadaPacket::word_is_header(int)“
我想我误解了一些定义-声明的关系。
编辑
显然,如果这是可能的话,我想要这两个修饰符。
发布于 2016-04-12 12:34:08
从两个位置删除inline关键字。
只有在定义来自多个翻译单元的头文件中的函数时,才应该使用inline关键字。嗯,还有其他情况下也可以使用,但这里没有一个适用。
发布于 2016-04-12 12:35:12
在.h文件和.cpp文件中,您的定义没有相同的修饰符列表。对于链接器来说,这两个定义应该是完全相同的。因此,我首先从两者中删除“静态”并重新编译。
https://stackoverflow.com/questions/36573305
复制相似问题