VS2013运行错误:error LNK2001: 无法解析的外部符号

1>Goods.obj: error LNK2001:无法解析的外部符号 "int (* arr)[20]" (?arr@@3PAY0P@HA)

1>Connect.obj: error LNK2001:无法解析的外部符号 "protected: virtual void __thiscall CConnect::OnSale(int)"(?OnSale @CConnect@@MAEXH@Z)

1>Connect.obj: error LNK2001:无法解析的外部符号 "protected: virtual void __thiscall CConnect::OnBuy(int)"(?OnSale@CConnect@@MAEXH@Z)

1>C:\Users\####\documents\visualstudio 2013\Projects\Sale\Release\Sale.exe : fatal error LNK1120: 3个无法解析的外部命令

==========生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========

errorLNK2001:无法解析的外部符号, 导致该问题的原因是我们在头文件对其申明了,但是在相应的源文件中却未给出其定义。如下:

==============” arr.h “ 头文件有以下声明================

………….

extern int arr[20][20];

…………

==============” arr.cpp “ 源文件================

#include ….

….

/*

**此处应给出定义:int arr[15][15];

*/

….

1>Connect.obj: error LNK2001:无法解析的外部符号 "protected: virtual void __thiscall CConnect::OnSale(int)"(?OnSale @CConnect@@MAEXH@Z)出现错误在于,在头文件给出函数声明,但是在其原文件中却为定义、或者定义了但未指定其作用域(CConnect::),其实提示中已经告诉我们了。

==============” Connect.h “ 头文件有以下声明================

………….

virtual void OnSale(int)

…………

==============” Connect.cpp “ 源文件================

#include ….

….

void OnSale(int) //此处正确定义应该是:voidCConnect::OnSale(int)

{

     ……

}

这些问题其实挺简单的,出现问题不用慌仔细看下错误提示,基本都可以很快解决的。

你可能感兴趣的:(VS2013运行错误:error LNK2001: 无法解析的外部符号)