无法解析的外部符号 LNK错误总结

错误分析:

这是在链接过程中的报错,之所以在这里报错,而没有在编译过程中报错,说明包含报错方法的.h文件已经被包含了,但对应的cpp文件或者库文件链接器没有找到,所以它就很委屈地报了这个错误.

那会有哪些可能的原因导致这个问题呢?

1.缺少对应的cpp文件(比如下图中,在main.cpp中,添加了.h文件,但是项目中没有对应的函数的实现文件.一开始我对LNK报错很抵触,因为它的报错信息看着太难受了.后来发现只需要看几个关键信息就可以了:是哪个obj文件下的,报错的函数名是什么)

无法解析的外部符号  LNK错误总结

 

 2.缺少对应lib文件

  2.1 lib文件压根就没有添加或者路径错误(看下VS中的库目录有没有添加,或者在代码中搜索"#pragma comment(lib,  )")

  2.2 lib文件的版本对应不上 (这个有时候很难想到,比如当时用windbg的lib,VS里的环境是32位,自己没想太多把64位的lib路径添加进去)

上一篇:C#不引用IWshRuntimeLibrary获取快捷方式目标位置


下一篇:字符串切片操作——在满足索引处替换字符串