有点小郁闷。qt下代码本来是用的mingw 编译的,现在因为一些原因,需要改成用msvc 编译器编译,然后遇到一个奇怪的问题,具体就是我在添加一个新类的时候,总是提示无法解析的符号被引用。找了好久的原因。网上有人说是类中定义了一个函数而没有实现,我用mingw编译是通过的,换到msvc 就报错,显然原因不是这个。
程序报错信息类似与下面这种
1>main.obj : error LNK2019: unresolved external symbol "public: void __thiscall Matrix_sb::init(void)" (?init@Matrix_sb@@QAEXXZ) referenced in function main
或者这种:
mainwindow.obj:-1: error: LNK2019: 无法解析的外部符号 "public: __thiscall Dialog1::Dialog1(class QWidget *)" (??0Dialog1@@QAE@PAVQWidget@@@Z),该符号在函数 "private: void __thiscall MainWindow::rightClickedOperation(void)" (?rightClickedOperation@MainWindow@@AAEXXZ) 中被引用
同样的新建项目,改项目头文件目录也是一样报错。
解决方法: 删除调试文件夹 build-test-Destop_QT_5_7_10_MSVC2015-debug
重新编译就可以编译通过
原因我还不知道,如果有人知道请指教小生。