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)
{
……
}
这些问题其实挺简单的,出现问题不用慌仔细看下错误提示,基本都可以很快解决的。