zoukankan      html  css  js  c++  java
  • 关于我遇到的“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的名称或者改一下编译顺序就能解决这个问题,最好该名称。


  • 相关阅读:
    我的Android平台“人人相册”客户端
    ADT 17及更高版本的混淆变更
    由glBitmap想到OpenGL编程涉及的坐标系
    版本控制之SVN
    工作了,要努力
    50 Most Frequently Used UNIX / Linux Commands (With Examples)
    linux命令分析SED (二)
    SeekBar也玩分段
    TSQL RAND()
    使用WebClient进行上传文件 [ZT]
  • 原文地址:https://www.cnblogs.com/jzssuanfa/p/6977766.html
Copyright © 2011-2022 走看看