使用vs2013编译写好的工程时,总是显示“error LNK2019: 无法解析的外部符号”。
因为是自己写的.h和.cpp文件,所以不存在使用第三方提供的库找不到lib文件的问题。在网上找了一下,
这个哥们讲的很详细:https://www.cnblogs.com/hiloves/p/4678848.html,主要看中了下面两种情况:
1、你自己写的函数声明的头文件也写了函数定义的cpp文件,却依然出现LNK2019错误。可能原因:忘记将这两个文件加入工程了。
2、你自己写的函数声明的头文件也写了函数定义的cpp文件也加入工程了而且你很确定函数体肯定是在这个库文件中,却依然出现LNK2019错误。可能原因:C语言和C++语言混编,因为C++支持函数重载所以C++编译器生成的库文件中的函数名会面目全非。
检测之后,也不是这两种情况。
最后发现,在h文件中函数声明为:void matMult(const float** pSrc1,float* pSrc2, float* pResult);
但是在cpp文件中,函数定义为:void matMult(const float** pSrc1, const float* pSrc2, float* pResult)
形参的类型有点区别。