网上一般有很全面的解决方法,最近恰好本道长也遇到了这种问题,也恰好解决了,这种问题应该算作配置问题,而非程序本身问题,多数是因为接手了生疏的程序导致,此问题看上去很简单,但木有经验的话很难迅速找到解决方法,所以更多的是着急,在此做一个记录。这个异常是出现在链接阶段,也就是源代码跟lib或dll链接时出现的,主要是因为以下两个原因:
1.头文件中有函数声明,而cpp文件中没写实现。(这种情况出现的概率极小,有哪个第三方库的开发这会这么大意呢?)
2.就是本道长遇到的问题:忘记在项目-》属性-》配置属性-》链接器-》输入-》附加依赖项中加入相应的lib。这里要重点说明一下如何确定找不到外部符号的.h文件属于哪个lib库的问题,我的做法是:看此头文件是include下的哪个目录,通常情况下,这个目录就是lib的文件名,不确定的话,可以使用everything去以目录名称.lib搜索一下加以核实。
另外,在项目配置的时候,我们时常看到$(SolutionDir)include这样的字符串,实际上$(SolutionDir)就是*.sln所在的目录,是VS自定义的宏。