您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> C/C++ >> 求助vs2017 c++ lnk2019 无法解析的外部符号

求助vs2017 c++ lnk2019 无法解析的外部符号

来源:网络整理     时间:2017/8/3 12:27:49     关键词:

关于网友提出的“ 求助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:

引用 3 楼 imgjk 的回复:
当我把定义移到类里面就不会报错了,
为什么会这样

移到类里面后,编译器忽略了 inline
在外面时,编译器还要找那个 inline 的函数,但是没有找到 解决方案2:

引用 3 楼 imgjk 的回复:
当我把定义移到类里面就不会报错了,
为什么会这样
去掉函数原型中的 inline。这个函数无法 inline,因为包含 for 循环 解决方案3:

inline LocalFile* GetLocalFileInfo(string name,HASH hash);
有定义函数体了吗


以上介绍了“ 求助vs2017 c++ lnk2019 无法解析的外部符号”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/4418847.html

相关图片

相关文章