C++中引用LIB库中的getInstance(),报LNK2001错误求指点

C++中引用LIB库中的getInstance(),报LNK2001错误求指点

问题描述:

工程A生成了一个LIB类库,里面有一个单实例。代码如下:

生成类库在工程B中使用时候,报LNK2001错误:

 

需要再libGen.cpp里做一个myInstance的声明,std::shared_ptr<libGen> libGen::myInstance=nullptr;

如楼上所说,准确的说应该是需要再libGen.cpp里做一个myInstance的定义,我补充一点

我们知道C++类的静态成员变量是需要初始化的,但为什么要初始化呢。其实这句话“静态成员变量是需要初始化的”是有一定问题的,应该说“静态成员变量需要定义”才是准确的,而不是初始化。两者的区别在于:初始化是赋一个初始值,而定义是分配内存。静态成员变量在类中仅仅是声明,没有定义,所以要在类的外面定义,实际上是给静态成员变量分配内存。

lib库是不是没有添加到工程B中

C和C++完整教程:https://blog.csdn.net/it_xiangqiang/category_10581430.html
C和C++算法完整教程:https://blog.csdn.net/it_xiangqiang/category_10768339.html