当出现"无法解析的外部符号"的问题时,可能的原因网上已经解释过很多,今天在这里列举一个我工作中遇到的新的造成该问题的场景:
我的工程B引用了工程A的静态库,工程A生成成功,但是将A.lib放到工程B中时,总是报A.lib的错(Class1::func1()在Class2::func2()中被引用),排查了好多可能,将.lib库和引用的程序文件全都重新替换一次仍旧没有用,后来发现是因为一个非常简单的原因:工程A中没有添加Class1.h和Class2.cpp,虽然这两个文件放在工程A的目录下,但是并没有添加到工程里,至于工程A为什么会生成成功我也不清楚,但是导致A.lib在工程B中出现"无法解析的外部符号"的错误,将程序文件添加进去重新生成就好了。
这种情况在开发过程中不易出现,但测试过程中却很容易发生,当有新版本时,更换源文件就会有添加了新的源文件而旧工程中未添加的情况,如果沟通不及时或者开发人员疏忽,就会发生该问题,不过有经验了之后就很好解决啦!!