今天找了网上所有的帖子,最后一步生成的时候出现了下述错误,求大神解答
PS:lib文件都已经设置过了,inc和lib的目录也都包含了
版权声明:本文为博主原创文章,未经博主允许不得转载。如遇到疑问,评论会给出答复。学习交流——关注页面微信公众号。【吃良心,拉思想】 /Taily_Duan/article/details/
出现这个错误,应该首先查看“#include”语句是否包含,或者是否包含正确。符号无法解析意味着编译器知道有这个符号存在,也就是有声明,但在链接时,找不到实现代码,那么就去看看报错的这个函数有没有实现代码。如果它们的确已经有了,还是出现这个错误,就把它们重新编译一下。
根据个人遇到这个错误时的记录,原因可以分为一下几种:
原因一:只是在.h里面声明了某个方法,没有在cpp里面实现。
具体讲,有时候在头文件中声明了需要的方法,确实忘记了在源文件中实现;
有时候在头文件中声明了需要的方法,在源文件中实现了该方法,但是却遗留了方法名前的“classname::”;
有时候在头文件中声明并实现了需要的方法,但是在代码调整时直接把方法copy到源文件时,并没有在函数前加“classname::”;
原因二:声明和实现都有了,但是没有添加到vs的project目录下面,这时候如果在其他.cpp中引用的,就会出现这个错误。
原因三:有时候工程比较大时,会直接加入一些原有的基础工程来提交效率,如果对原有工程不太熟悉,在工程中加入了有相同名字的文件或者类时,同样会引起这个问题。
原因四:内联函数相关,如果内联函数的声明在头文件中,实现在源文件中,这时候如果其他类中只是包含了头文件,在调用这个内联函数时也会出现这个问题。此时把函数实现放到头文件中,或者把.cpp也include进来,就可以解决问题。
原因五:如果这个类是动态库中定义的类,可能是因为没有把这个动态库对应的.lib文件加到工程中。
Taily老段的微信公众号,欢迎交流学习
今天编译之前的一个项目的时候,出现这样的问题,但是其他同事就没有这样的问题。后来在网上查找也是有很多的解决问题的办法,但是都没有解决。于是乎自己动手。
1>已完成执行任务“Link”的操作 - 失败。
右键打开项目属性->链接器->qtmain.lib删除掉,在重新编译,
编译之后出现如下错误:
然后在刚才删掉的qtmain.lib添加上后重新编译,就可以了~!
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。