qt报错lnk2019_2019咬文嚼字十大错误

qt报错lnk2019_2019咬文嚼字十大错误Qt错误:LNK2019:无法解析的外部符号原因及解决办法删除Qt中的一些用不到的函数或者添加一个新的.ui窗口的时候,我遇到了这个LINK2019无法解析的外部符号错误,网上查了半天可算解决了,写篇博客记录下。错误原因1:函数(一般是槽函数)在.h中声明,但却没有实现如图,我在自己的automatic.c文件中生成了一个按钮的点击处理函数,后面不想用了,把它删掉了,但是在automatic.h中忘记删掉声明了,于是系统编译报错。所以删掉声明就好。错误原因2:添加新的.ui窗体文件时编

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

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_OBJECT

public:
    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文件的时候不要直接把这个文件夹删了,而是要把文件里面的内容删了,不然会报找不到文件或者其它谜之错误。
在这里插入图片描述
最后补充一句:看自己项目的编译器在左下角看
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/185389.html原文链接:https://javaforall.net

(0)
上一篇 2022年10月6日 上午10:16
下一篇 2022年10月6日 上午10:36


相关推荐

  • die名词_ddr读写时序

    die名词_ddr读写时序ODT是什么鬼?为什么要用ODT?在很多关于DDR3的博文和介绍中都没有将清楚。在查阅了很多资料并仔细阅读DDR3的官方标准(JESD79-3A)之后,总算有点了头绪,下面来整理整理。1、首先ODT是什么?ODT(On-DieTermination),是从DDR2SDRAM时代开始新增的功能。其允许用户通过读写MR1寄存器,来控制DDR3SDRAM中内部的终端电阻的连接或者断开。在DDR…

    2025年10月14日
    4
  • cisco交换机基本配置命令_cisco交换机保存命令

    cisco交换机基本配置命令_cisco交换机保存命令前段时间我们发布了关于学校机房项目交换机的配置,理解这篇,交换机配置不再难,这篇是以思科交换机为配置基础,有部分朋友觉得有些难度,希望我们发些基础些的内容,本期我们就一起来看下思科的基础配置。思科交换机的基本配置一、基本配置switch>enable//进入特权模式switch#configterminal…

    2022年4月20日
    437
  • OpenClaw 全流程安装部署实践指南

    OpenClaw 全流程安装部署实践指南

    2026年3月13日
    3
  • 高度图地形读取与漫游

    高度图地形读取与漫游高度图的读取渲染以及漫游

    2022年5月25日
    41
  • 智能安防及视频监控系统

    智能安防及视频监控系统目录一、智能安防系统1、智能安防系统介绍2、安防系统相关工程二、视频监控系统1、视频监控系统分类2、视频监控系统组成3、视频监控系统的作用4、硬盘录像机NVR的基本功能5、硬盘录像机NVR设备结构6、视频监控设备主要厂商一、智能安防系统1、智能安防系统介绍安全防范系统成为了智慧城市与物联网行业应用中的一个非常重要的子系统。安防系统主要包括:视频监控系统、入侵报警系统、出入口控制系统、电子巡查系统以及智能停车场管理系统等5个子系统。AI人工智

    2022年7月15日
    27
  • OpenClaw从入门到落地:2026年最全开源AI Agent实战指南

    OpenClaw从入门到落地:2026年最全开源AI Agent实战指南

    2026年3月13日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号