关于我遇到的“LNK 2019无法解析的外部符号”的链接错误

Posted jzssuanfa

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于我遇到的“LNK 2019无法解析的外部符号”的链接错误相关的知识,希望对你有一定的参考价值。

昨天在调试程序的时候出现了“LNK 2019无法解析的外部符号”的问题(VS2008),依照网上说的方法都没有解决这个问题,最后在项目文件里发现有两个同名的可是不在同一个目录下的cpp文件,而产生LNK错误的cpp文件里有对这个重名文件的引用,结果导致了当中一个cpp文件产生的目标文件(obj)覆盖了真正须要的cpp产生的OBJ文件,导致链接的时候找不到指定的符号而出现了链接错误。

以下给个图说明一下我遇到的情况吧:

技术分享技术分享

技术分享

在项目中。同一时候包括了目录1和目录2中的全部cpp文件,而ref.cpp须要调用的函数是目录2中a.cpp中函数add,也就是途中红色是引用的函数。

情况一:当目录1中的a.cpp先于目录2中的a.cpp被编译,这样调用没有问题,ref.cpp可以找到add函数。目标文件a.obj中有add函数,没有Max函数

情况二:当目录1中的a.cpp比目录2中的a.cpp被编译的话。ref.cpp就无法找到add函数。由于暂时目录中的a.obj被目录一中的a.cpp生成的目标文件给替换了,目标文件a.obj中有Max函数。没有add函数

情况二会出现LNK 2019无法解析的外部符号的链接错误。改一下a.cpp的名称或者改一下编译顺序就能解决这个问题,最好该名称。





以上是关于关于我遇到的“LNK 2019无法解析的外部符号”的链接错误的主要内容,如果未能解决你的问题,请参考以下文章

高手救命·关于 error LNK2019: 无法解析的外部符号

LNK2019 无法解析的外部符号

“error LNK2019: 无法解析的外部符号”之分析

error LNK2019: 无法解析的外部符号

error LNK2019: 无法解析的外部符号 求解答..

error LNK2019: 无法解析的外部符号