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


相关推荐

  • 西门子scl语言和c语言,西门子SCL语言编程学习心得[通俗易懂]

    西门子scl语言和c语言,西门子SCL语言编程学习心得[通俗易懂]1、SCL程序可以在CPU314及其以上的S7(包含400)中运行。2、SCL程序建立在”S7Program”-”Sources”下面。S7-Program-Blocks(e.g.FB,OB)-Sources(e.g.SCLsourcefile)-Symbols3、程序结构FB:FUNCTION_BLOCKfb_nameEND_FUNCTION_BLOCKFC:FUNCTION…

    2022年10月7日
    0
  • 分布式事务atomikos的原理_spring分布式事务

    分布式事务atomikos的原理_spring分布式事务atomikos+jta+JdbcTemplate依赖包(部分)事务等配置jta.properties(修改默认配置使用)测试,JdbcTemplate操作数据库@Transactional

    2022年8月5日
    2
  • Postman :中文汉化界面一键配置「建议收藏」

    Postman :中文汉化界面一键配置「建议收藏」开心到飞起!!!Postman工具界面被大佬汉化啦!!Gitee和Github链接跳转地址:黄连木笛大佬的Gitee地址:PostmanCn黄连木笛大佬的Github地址:PostmanCn汉化包下载地址【2021-04-1320:22如有新版可以自己更新下载】:https://gitee.com//hlmd/PostmanCn/attach_files/670442/download/app.zip使用方法:解压并复制app文件夹到路径:C:/Users/用户名/AppData/Lo.

    2022年9月29日
    0
  • LaTeX详细教程+技巧总结[通俗易懂]

    LaTeX详细教程+技巧总结[通俗易懂]LaTeX技巧总结,包含LaTeX工具,LaTeX模板,LaTeX技巧,LaTeX基础,文章架构,字体、大小和颜色,链接,列表,图片,表格,数学公式,算法(伪代码),代码块,论文写作,等等。

    2022年5月16日
    54
  • dpkg说明_dpkg命令

    dpkg说明_dpkg命令dpkg与centos中的rpm相似,被用于安装,卸载及查询deb包信息。下面简单介绍基础命令。已有安装包:test.deb。安装命令:dpkg-itest.deb安装test.deb软件包dpkg-ctest.deb#查看test.deb软件包中包含的文件结构安装后查询命令:dpkg-Itest查看已安装的test.deb软件包的详细信息,包括软件名称、版本等dpkg-Ltest#查看已安装test.deb软件包安装的所有文件dpkg-stest#查看test.

    2022年10月7日
    0
  • linux查看ttys0的设置_centos查看文件内容的命令是

    linux查看ttys0的设置_centos查看文件内容的命令是准备工具0.下载ttylinux系统。http://minimalinux.org/ttylinux/downloadX86.html(ttylinux-i686-11.1.iso.gz)(bootcd-i386-5.3.iso.gz)1.下载thttpd。(一)ttylinux安装(ttylinux-i686-11.1.iso)1.将ttylinux-i686-11.1.iso.gz解压t…

    2022年8月12日
    5

发表回复

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

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