Qt5.12版本,MSVC201764位编译环境下,在组件中使用“提升法”修改组件类后遇到一个问题:
**mainwindow.obj👎 error: LNK2019: 无法解析的外部符号 "public: __cdecl QmyVideoWidget::QmyVideoWidget(class QWidget )" (??0QmyVideoWidget@@QEAA@PEAVQWidget@@@Z),函数 "public: void __cdecl Ui_MainWindow::setupUi(class QMainWindow )" (?setupUi@Ui_MainWindow@@QEAAXPEAVQMainWindow@@@Z) 中引用了该符号
debug\Video.exe👎 error: LNK1120: 1 个无法解析的外部命令
这个问题网上的解决办法说是:
·删掉编译后生成Debug等文件夹;
·MSVC中缺少xxx库(lib库)等;
还有其他的我没有看到,我在对组件的类使用提升法后,产生这个问题的原因是:
在创建的类实现函数(.cpp文件中),没有添加这个实现函数的构造函数,导致编译器在链接的时候,没办法找到创建对象所用到的所有构造函数,需要在.cpp文件中添加构造函数头部,指明这个对象用到的所有构造函数。
添加构造函数头部就可以解决这个问题了。
有些问题也可以在Qt的目录中,删除xxxx.pro.user文件后重新构建项目解决。