MFC编程中错误 之Error    LNK2001

本文介绍MFC(VC/VS环境也适用)下Error LNK2001错误。该错误提示为unresolved external symbol,原因是在头文件用extern声明外部变量或inline声明函数,使用时未重新声明变量或定义函数。解法是在使用的.cpp文件中重新声明变量或定义函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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(针对函数)但,使用时却没有重新声明变量,或者函数没有具体的被定义(或者没有加载 库导致函数没定义),所以编译器无法解释某个标识符号; 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值