Qt5 error LNK2019 无法解析的外部符号 解决办法

Qt5 error LNK2019 无法解析的外部符号 解决办法

wangaolong 2020-02-08 18:57:34 1106 收藏 3
版权
Qt5 error LNK2019 无法解析的外部符号 解决办法
原因
编译器未识别该新类的名字
解决
1.项目右键清除
2.qmake(重新让编译器识别所有类)
3.构建
如果上述方法还没解决则按一下方法操作
1、问题:
最近使用QT 5.0.2 设计界面,遇到一个纠结的问题:
建立工程后,再新建一个新的类(如class a),类声明在a.h头文件中,在main.cpp中 #include “a.h” 但是在链接过程中报错:类a的所有成员函数(构造函数,析构函数等)均无法识别,被编译器标为“无法解析的外部符号”。

解决:
将当前qt工程所在的父目录下的 build-(工程名)-Desktop_Qt_5_0_2_MSVC2010_32bit-Debug 文件夹删除,再构建项目即可运行。。

只能说qt5的编译器过于奇葩。。

2、问题:
在qt中使用了#include
<QtMultimedia/QAudioInput> 实现录音功能,但是发现所有使用QtMultimedia中的类的成员函数均被判为:error LNK2019: 无法解析的外部符号 "__declspec(dllimport),使用上一种方法无法解决。

解决:
查了网上的一些资料,发现链接错误是由于最后在生成可执行程序时无法找到某个库所造成的,即程序编译是没有问题的,例如你的代码里面声名了一个函数,然后也有很多地方用到了这个函数,但是这个函数真正的实现是在某个你引用的库里面实现,定义的,因此,在编译阶段是不会报错的,但等到真正链接时,就要去打这个函数的实现了,此时,如果编译器找不到对应的库文件(win下一般为.lib谁的),就会报这种链接错误了。
所以真正的问题是没有加载库
加载库的方法有两种:
1)在qt的工程文件.pro中添加:QT += multimedia (库名)
2)向项目添加对应的lib文件
我使用1)解决了问题。
————————————————
版权声明:本文为CSDN博主「maverick1990」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/maverick1990/article/details/8995205

THE END
< <上一篇
下一篇>>