造成这种问题原因:
1.
声明了的函数没有实现。
例子:
class Test
{
public:
Test();
};
如果构造函数没有实现的话,用来生成对象就是出现错误。
解决方法:实现构造函数,如果构造函数中没有什么可写的,那就去掉构造函数,或者加大括号。
解决方法:实现构造函数,如果构造函数中没有什么可写的,那就去掉构造函数,或者加大括号。
class Test
{
public:
Test(){} //
加个大括号也可以直接去掉
或者在cpp
中写他的实现。
};
2
,如果这个包含这个函数的实现在lib
里面,出现这种情况,很有可能是没有包含相应的lib
解决方法:vs
系列.
点击工程属性找到Link
中添加相应的lib
。如下图蓝色区域,还必须有该lib
下的目录,该目录添加见第二幅图
![1.PNG 1.PNG](https://i-blog.csdnimg.cn/blog_migrate/d084c3cf1102038bcf1ff6da04623519.png)
![2.PNG 2.PNG](https://i-blog.csdnimg.cn/blog_migrate/37120af89ce033766aa89afa73fe0fc1.png)
或者
也
可以通过#pragma comment(lib, "
你需要的库名字");
来进行添加
3
,一些旧的中间文件未删除,导致连接文件不是最新的。
解决方法:将所有的中间文件都删除(如果不理解,你就把debug release
目录全部删除,反正就是由工程编译时生成的)。
最根本的原因就是编译器没有找到这个符号的实现方法。