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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 宽度学习(一):宽度学习体系:有效和高效的无需深度架构的增量学习系统[通俗易懂]

    宽度学习(一):宽度学习体系:有效和高效的无需深度架构的增量学习系统[通俗易懂]Motivation深度学习:1,时间长:由于涉及到大量的超参数和复杂的结构,大多数神经网络的训练过程非常耗时。2,重新训练:如果要更改神经网络的结构,或者增加样本,深度学习系统将遇到一个完整的重新训练过程。宽度学习:1,消除了训练过程长的缺点,并且提供了很好的泛化能力。2,如果网络需要扩展,宽度学习网络可以快速重构,无需重新训练过程。Preliminaries1,RVFLNN…

    2022年5月21日
    38
  • 在Windows XP 上 架设 FTP服务器

    在Windows XP 上 架设 FTP服务器架设一台FTP服务器其实很简单。首先,要保证你的机器能上网,而且有不低于ADSL512Kbps的网络速度。其次,硬件性能要能满足你的需要。最后,需要安装FTP服务器端的软件,这类软件很多,可以使用微软的IIS(InternetInformationServer因特网信息服务系统),也可以使用专业软件。不同的软件提供的功能不同,适应的需求和操作系统也不同。一般来说,系统最低要求如下:CPU

    2022年7月21日
    15
  • 小米9刷面具和模块[通俗易懂]

    小米9刷面具和模块[通俗易懂]准备工作:没解BL锁的需要先解锁1.按住音量键下和关机键进入Fastboot模式连接电脑2.这里使用奇兔刷机连接手机,中途会自动安装驱动,若安装驱动失败可使用驱动精灵或驱动人生手动安装驱动.安装完驱动后奇兔刷机会显示已经连接到手机开启root:1.下载twrphttps://twrp.me/xiaomi/xiaomimi9.html2.1.把Magisk-v20.4.zip和magisk-taichi

    2022年6月4日
    114
  • vue学习笔记(二)——字符组件传值「建议收藏」

    vue学习笔记(二)——字符组件传值「建议收藏」1、子组件向父组件传值、vue中splice和$emit使用:https://blog.csdn.net/BlackPlus28/article/details/100136811<body> <div id=”app”> <!– v-model 数据双向绑定 –> …

    2022年6月13日
    29
  • Vim查找命令及快捷键

    Vim查找命令及快捷键Vim查找命令及快捷键一、通过指令查找 1、左斜杠/ 从光标所在位置向文件尾搜索  例:/hello   2、问号? 从光标所在位置向文件头搜索  例:/hello   注:/和?均可加参数做指定查找(两者搜索方向不同,此处以/举例进行说明)    1) \&amp;amp;amp;amp;lt;匹配单词的开头 \&amp;amp;amp;amp;gt;匹配单词的结尾  例: \&amp;amp;amp;amp;lt;hel

    2022年6月17日
    77
  • office 365 e5开发者_百度网盘5t不够用怎么扩容

    office 365 e5开发者_百度网盘5t不够用怎么扩容Microsoft365E5开发者扩容到5T1.进入网址https://admin.microsoft.com/Adminportal/Home?source=applauncher#/users找到活跃用户2.找到你的账户进入管理产品许可证3.点击OneDrive,再点击编辑4.点击修改为此用户最大空间…

    2025年10月10日
    5

发表回复

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

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