Qt 错误: LNK2019: 无法解析的外部符号 原因及解决办法

删除Qt中的一些用不到的函数或者添加一个新的.ui窗口的时候,我遇到了这个LINK2019无法解析的外部符号错误,网上查了半天可算解决了,写篇博客记录下。

错误原因1:函数(一般是槽函数)在.h中声明,但却没有实现

如图,我在自己的automatic.c文件中生成了一个按钮的点击处理函数,后面不想用了,把它删掉了,但是在automatic.h中忘记删掉声明了,于是系统编译报错。所以删掉声明就好。


错误原因2:添加新的.ui窗体文件时编译器没有为它生成新的.obj文件而报错,需要重新执行qmake,而不是重新构建项目

首先我新建了一个界面,名为p1553B2,之后在automatic.h文件中,我include p1553B2的头文件,并且为界面类p1553B2声明了一个对象P1553B_2

#ifndef AUTOMATIC_H
#define AUTOMATIC_H#include <QWidget>
#include <QtGui>
#include <QtWidgets>
#include "P1553B2.h"  // 包含新窗体的头文件namespace Ui {class Automatic;
}class Automatic : public QWidget
{Q_OBJECTpublic:explicit Automatic(QWidget *parent = 0);~Automatic();private slots:void on_P1553B2_clicked();private:Ui::Automatic *ui;p1553B2 P1553B_2;  // 为新窗体声明一个对象
};#endif // AUTOMATIC_H

之后,我在automatic.c中的一个button的响应函数中调用P1553B_2.show();让这个界面显示

void Automatic::on_P1553B2_clicked()
{P1553B_2.show();
}

编译的结果是错误,无法解析的外部符号

之后,我选择 构建->执行qmake,执行成功后再选择构建->构建项目Automatic3,就成功了,程序可以正常执行。

其它办法:删除debug或release路径下的文件或许也可以解决

网上有博客说删除debug或release(看你编译是用什么编译的了)下的全部文件有时可解决这个问题,我试了试,没成功,这个方法并不适用于我遇到的问题,不过也不失为一种可行方法。查看自己编译路径的方法见下图,选择shadow build意思是编译路径和程序路径分开,也即可以自己选择路径,勾掉的话编译文件会和程序源文件在一起。注意删除debug或者release文件的时候不要直接把这个文件夹删了,而是要把文件里面的内容删了,不然会报找不到文件或者其它谜之错误。

最后补充一句:看自己项目的编译器在左下角看

Qt 错误: LNK2019: 无法解析的外部符号 原因及解决办法相关推荐

  1. 在cocos2dx2.2.3中遇到的error LNK2019: 无法解析的外部符号 _libiconv_closexxxxxxx的解决办法

    转自:http://blog.csdn.net/wxq_wuxingquan/article/details/44978031 conv是Cocos2dx自带的非常好用的可以解决中文乱码问题的库,但是 ...

  2. vs报错“错误 LNK2019 无法解析的外部符号”的几种原因及解决方案

      运行vs程序的时候,报错严重性 代码 说明 项目 文件 行 禁止显示状态 错误 LNK2019 无法解析的外部符号 "__declspec(dllimport) public: void ...

  3. 错误 LNK2019 无法解析的外部符号 main,函数 “int __cdecl invoke_main(void)“ (?invoke_main@@YAHXZ)

    项目场景: 在C++调试OnnxRuntime推理模型过程中遇到错误 问题描述 严重性 代码 说明 项目 文件 行 禁止显示状态 错误 LNK2019 无法解析的外部符号 main,函数 " ...

  4. 错误 LNK2019 无法解析的外部符号 “__declspec(dllimport) public: int __thiscall osg::Referenced::ref(void)const “

    前言 错误 LNK2019 无法解析的外部符号 "__declspec(dllimport) public: int __thiscall osg::Referenced::ref(void ...

  5. 错误 LNK2019 无法解析的外部符号 “public: void __cdecl cv::Mat::copyTo(class cv::debug_build_guard::_OutputArray

    错误 LNK2019 无法解析的外部符号 "public: void __cdecl cv::Mat::copyTo(class cv::debug_build_guard::_Output ...

  6. 错误 LNK2019 无法解析的外部符号 “public: void __cdecl cv::Mat::copyTo(class cv::debug_build_guard::_OutputArray

    编译ORM_SLAM3中的DBoW2 环境:win10+vs2017,DEBUG x64 opencv为3.1.0 出现错误: 错误    LNK2019    无法解析的外部符号 "pub ...

  7. [MFC]: 找不到标识符“xxxx“,或者vs报错“错误 LNK2019 无法解析的外部符号”

    今天在编写MFC的时候,写一个AES128的加密C函数,发现我的函数都写好了,并在h文件中已经声明了,但是在dlg.cpp中包含了这个AES128.h的时候,发现总是提示找不到标识符"xxx ...

  8. 链接器工具错误错误 LNK2019 无法解析的外部符号

    错误 LNK2019 无法解析的外部符号 对于这个问题,不知道是版本问题还是添加依赖库少了的问题,也可能是用cmake编译cpp文件时,写的CMakeLists.txt有点小问题,其他的头文件编译不会 ...

  9. QT error: LNK2019: 无法解析的外部符号 __imp__SendMessageW@ 类型的错误 以及 pragma comment 的作用(用法)

    使用QT Creator 开发一个通讯项目时候,需要使用windows系统函数,比如: #include <windows.h> #include <WinUser.h> .. ...

最新文章

  1. 天体摇摆仪的工作原理-测量电路中的部分电路波形
  2. 赠书|大厂面试喜欢考算法,该怎么破?
  3. Blackboard Collabrate 模拟器打开
  4. 为什么不同的深度学习框架要使用不同的保存格式(转)
  5. caffe 提取特征并可视化(已测试可执行)及在线可视化
  6. 【软件质量】代码注释的消极作用
  7. 浏览器和驱动版本对应关系
  8. 《spring-boot学习》-14-spring boot整合freeMarker模板
  9. Struts2学习笔记(五) Action(下)
  10. 矩阵分析 (三) 矩阵的标准形
  11. [源码]VB6.0操作注册表
  12. C#报表控件ReportViewer
  13. 一图看懂人工智能技术体系
  14. 服务器存档修改器,太吾绘卷存档修改器v2.6
  15. 常用的计算机优化软件有哪些,计算机常用的硬件和软件优化软件和优化方法有哪些,如何提高WindowsXP系统的运行速度和稳定性...
  16. Java实现Word转PDF方案选择
  17. facenet-tensorflow人脸识别
  18. Openstack虚拟机镜像深度实践
  19. http和web服务器
  20. 如何构建用户行为分析系统?

热门文章

  1. 实验篇(7.2) 03. 部署物理实验环境(下)❀ 远程访问
  2. 【Cocos Creator 实战教程(2)】——天天酷跑(动画、动作相关)
  3. manjaro下安装QQ、TIM、微信(可输入中文)
  4. c++基础:Dev-c++、c4droid下载
  5. 网络编程_bind函数返回值
  6. 叮咚音箱 服务器挂了吗 无法注册,叮咚音箱连不上网怎么解决
  7. 复现一篇分布式装配置换流水车间调度问题的代码——基于回溯搜索的超启发式算法
  8. ai如何旋转画布_怎样使用AI旋转工具
  9. JS解决手机输入法挡住部分内容,窗口滚动到指定位置
  10. Excel宏(VBA)密码破解