Qt“无法解析的外部命令” 可能问题

我在凌晨一点多也犯糊涂了,写了个函数声明,还没写定义就编译,就产生这样的问题,发现问题记录一下,警醒,还是要按着流程先打桩。

转载申明:文章原创作者为各位-请不吝赐教,文章原地址: https://blog.csdn.net/u013776188/article/details/54945005

编译工程出现的问题如下:

 

mainwindow.obj : error LNK2019: 无法解析的外部符号 "public: void __thiscall signalandslot::SetData(int)" (?SetData@signalandslot@@QAEXH@Z),该符号在函数 "private: void __thiscall MainWindow::on_actionDakai_triggered(void)" (?on_actionDakai_triggered@MainWindow@@AAEXXZ) 中被引用

moc_signalandslot.obj : error LNK2001: 无法解析的外部符号 "public: void __thiscall signalandslot::SetData(int)" (?SetData@signalandslot@@QAEXH@Z)

debug\learnQT01.exe : fatal error LNK1120: 1 个无法解析的外部命令

 

 

解决办法:

方法一:将工程重新qmake,重新构建下。(不行再删除项目同名文件夹下的调试文件夹,例如:build-calculate-Desktop_Qt_5_6_0_MSVC2013_32bit-Debug文件夹)

方法二:检查是否有定义了的SOLT 函数没有实现?是否实现代码书写不正确。

方法三:检查Qt的库lib有没有正确的添加包含进来(具体可参考Qt配置教程)( 头文件都无法识别也可能是这个原因).

方法四:代码写好后,未在*.pro文件中添加选项信息(例如:进行网络编程时,代码写完后需要在工程文件*.pro文件中添加network选项后才能编译通过。添加的信息:QT += core gui network)

方法五:如果工程项目中有多个子项目,在子项目中如果需要调用外部类,那么需要将这个类对应的文件添加到子项目中,即在子项目的*.pro文件中引入这个类的路径。(注意:1.还要在代码中对这个类的头文件进行#include,不操作方法五,仅仅添加头文件是不行的,在linux上编译还会报"symbol lookup error"问题)

你可能感兴趣的:(QT)