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

博客文章移至: http://www.cnso.org/2017/12/02/165.html

昨天在调试程序的时候出现了“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的名称或者改一下编译顺序就能解决问题,最好该名称。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

daiafei

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值