vs报错输出如下所示:
1>myview.obj : error LNK: 无法解析的外部符号 "public: __cdecl CSPReport::CSPReport(void)" (??0CSPReport@@QEAA@XZ),函数 "public: void __cdecl myview::analysis(void)" (?analysis@myview@@QEAAXXZ) 中引用了该符号
1>myview.obj : error LNK: 无法解析的外部符号 "public: char __cdecl CSPReport::DecodeSPReport(unsigned char *,unsigned char,int)" (?DecodeSPReport@CSPReport@@QEAADPEAEEH@Z),函数 "public: void __cdecl myview::analysis(void)" (?analysis@myview@@QEAAXXZ) 中引用了该符号
1>myview.obj : error LNK: 无法解析的外部符号 "public: class std::list<struct PSR_SP,class std::allocator<struct PSR_SP> > __cdecl CSPReport::GetSPList(void)" (?GetSPList@CSPReport@@QEAA?AV?$list@UPSR_SP@@V?$allocator@UPSR_SP@@@std@@@std@@XZ),函数 "public: void __cdecl myview::analysis(void)" (?analysis@myview@@QEAAXXZ) 中引用了该符号
1>D:\vs_test\viewDev\x64\Debug\viewDev.exe : fatal error LNK1120: 3 个无法解析的外部命令
1>已完成生成项目“viewDev.vcxproj”的操作 - 失败。
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
看了很多文章还是没有找到结果,后来看到一个作者说可以把函数声明和函数定义都写在头文件里面,一试果然不再报错,好迷惑啊?头文件写声明,cpp文件写函数定义这没什么问题啊!之前明明已经包含了头文件,debug就会报错,不知道为什么,先记在这里
========================================
后续又遇到这样的问题,即使函数声明和函数定义都写在头文件还是没用,后面看到一篇文章说在函数声明前面加上inline可以解决,尝试一下果然可以,但是其中原理还是不太明白。