关于网友提出的“ 求助vs2017 c++ lnk2019 无法解析的外部符号”问题疑问,本网通过在网上对“ 求助vs2017 c++ lnk2019 无法解析的外部符号”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: 求助vs2017 c++ lnk2019 无法解析的外部符号
描述:vs2017lnk2019编译错误
编译遇到错误
部分代码如下:
theart.cpp:
#include "fileentrepot.h"
#include ......
DWORD WINAPI SandFile(PVOID nsock)
{
SOCKET temp = (SOCKET)nsock;
char buff[256]{};
HASH Hash;
char filename[20];
LocalFile * fileinfo;
recv(temp, (char *)&filename, sizeof(filename), 0);
recv(temp, (char *)&Hash, sizeof(HASH), 0);
fileinfo = entrepot.GetLocalFileInfo(filename,Hash);
......
}
fileentrepot.h:
class fileentrepot
{
public:
fileentrepot();
//******************************************获取单个信息
inline LocalFile* GetLocalFileInfo(string name,HASH hash);
......
}
错误代码如下
严重性 代码 说明 项目 文件 行 禁止显示状态
错误 LNK2019 无法解析的外部符号 "public: class LocalFile * __thiscall fileentrepot::GetLocalFileInfo(class std::basic_string<>
,class std::allocator >,unsigned long)" (?GetLocalFileInfo@fileentrepot@@QAEPAVLocalFile@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@K@Z),该符号在函数 "unsigned long __stdcall SandFile(void *)" (?SandFile@@YGKPAX@Z) 中被引用 file C:\documents\visual studio 2017\Projects\file\file\theart.obj 1
解决方案1:
移到类里面后,编译器忽略了 inline
在外面时,编译器还要找那个 inline 的函数,但是没有找到
解决方案2:去掉函数原型中的 inline。这个函数无法 inline,因为包含 for 循环
解决方案3: inline LocalFile* GetLocalFileInfo(string name,HASH hash);
有定义函数体了吗
以上介绍了“ 求助vs2017 c++ lnk2019 无法解析的外部符号”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/4418847.html