MFC编程中错误 之Error    LNK2001

1)前置条件:MFC下(VC/VS环境下应该也可以)

2)产生错误(公共即这类错误都有提示)现象:Error    LNK2001    unresolved external symbol "xxxx"

     说明:

        (1)这类错误都有提示信息:Error    LNK2001    unresolved external symbol " 具体错误的信息“; (”“中的内容下面说明)。

        (2)”“中的内容下面说明为具体错误的提示信息; 基本上可以看到是某个外部变量、函数或者内联函数 ,它们 在某个                       头文件中用extern var/fn; 或者inline fn,但在使用的xxx.cpp文件中由于没有再次声明变量,或者没有定义函数 ;

3)错误的原因及解法:

      原因及解法:extern var/fn;就拿var(变量)来说吧,在头文件中extern type var,但在xxx.cpp中使用时,没有重新 type var;

      所以解法是——在使用的xxx.cpp中要重新type var; 这样就不会报错。

      小结:总的原因就是在头文件中用extern声明外部变量,但在定义函数在,缺少了对该变量再次声明,所以产生这样的错误。

4)例子:

    a.h 中有如下 :

extern int iAbc;

在使用iAbc的某个定义函数 中,如在www.cpp文件中:应该再一次进行如下操作;

int iAbc; 

这样就不会提示Error    LNK2001 

5)总结:Error    LNK2001 的错误,都是由于对变量或者函数使用extern、inline(针对函数)但,使用时却没有重新声明变量,或者函数没有具体的被定义(或者没有加载 库导致函数没定义),所以编译器无法解释某个标识符号; 


版权声明:本文为Soar_dream原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。