前因:今天编译代码报了 LNK2001无法解析的外部符号问题
排查后发现:
我在 a 类中用了 extern 变量 ,但是 b 类在使用a类的时候没有定义并初始化 extern 的变量,导致一直无法解析 a类的 extern 变量。
解决方法:在b类中,将a类的extern 变量初始化即可。
如下
namespace app
{
class a
{
public:
AppLogin();
virtual ~AppLogin();
}
extern a* __a; //定义变量
}
class b
{
a* __a = nullptr; //如果不添加这句话就会报 LNK2001 错误
...
}