qt中编译出现无法解析的外部符号错误处理

1. 问题

LNK2019:无法解析的外部符号链接错误

2. 背景

在项目中添加新的c++类文件,然后在其他类文件中,引入这个新的c++类文件,并构造该新的c++类对象。编译时出现链接错误LNK2019:无法解析的外部符号

下面是复现步骤

1. 准备一个简单的桌面应用项目

  • 新建项目
  • 选择桌面应用程序
  • 给项目起一个名字,并设置项目本地路径
  • 选择qt编译器
  • 配置主窗口信息
  • 配置版本控制,这个不需要,这里只是测试,直接点击完成
  • 项目创建好
  • ctrl + r运行

可以运行。

2. 添加自定义的新组件

  • 项目添加新文件

  • 选中C++文件

  • 为创建的类命名

  • 版本控制,这里不需要,直接点击完成

  • 新添加的头文件

  • 新添加的源文件

3. 在主窗口中引入新添加的头文件,并在构造中创建新添加的widget

4. ctrl+b编译项目

出现链接错误 LNK2019:无法解析的外部符号

3. 解决

出现这种情况时,其实代码是没有问题的,但是就是出现这个链接错误。其实这和qt creator的构建工具有关,我们需要清理下项目,然后重新使用[qmake]构建下项目,然后再来编译我们的项目

  • 菜单栏点击构建(B),点击清理项目"Test"

  • 菜单栏点击构建(B),点击执行qmake

  • ctrl+b编译项目

链接错误消失。编译通过了,(警告可以不用管,不会影响运行)

  • ctrl+r运行项目

项目正常运行,这里看到主窗口中并没有我们添加的组件,是因为我们没有对组件配置属性,没有真正的自定义该组件,这里只是演示链接错误。

markdown 复制代码
qmake 工具有助于简化跨不同平台的开发项目的构建过程。
    它自动生成 Makefile,因此只需几行信息即可创建每个 Makefile。
    您可以将 qmake 用于任何软件项目,无论它是否使用 Qt 编写。
qmake 会根据项目文件中的信息生成一个 Makefile。
    项目文件由开发人员创建,通常很简单,但可以为复杂的项目创建更复杂的项目文件。
qmake 包含支持使用 Qt 进行开发的附加功能,自动包括 和 的构建规则。
qmake 还可以为 Microsoft Visual Studio 生成项目,而无需开发人员更改项目文件。
相关推荐
冰激凌zz2 小时前
ubuntu nobel + qt5.15.2 设置qss语法识别正确
linux·qt·ubuntu
不被定义的程序猿3 小时前
使用DEEPSEEK快速修改QT创建的GUI
开发语言·qt
机器视觉知识推荐、就业指导3 小时前
Qt/C++面试【速通笔记七】—Qt中为什么new QWidget不需要手动调用delete?
c++·qt·面试
溟洵3 小时前
【C++ Qt】多元素控件(ListWidget、TableWidget、TreeWidget)
开发语言·前端·c++·后端·qt
爱吃涮毛肚的肥肥(暂时吃不了版)11 小时前
仿腾讯会议——创建房间&加入房间
c++·qt·面试·职场和发展·腾讯会议
꧁坚持很酷꧂12 小时前
Qt天气预报系统绘制温度曲线
开发语言·qt
可可乐不加冰13 小时前
QT生成保存 Excel 文件的默认路径,导出的文件后缀自动加(1)(2)等等
开发语言·qt
「QT(C++)开发工程师」13 小时前
Qt还有希望吗
qt
机器视觉知识推荐、就业指导14 小时前
Qt开发经验:回调函数的线程归属问题及回调函数中更新控件的问题
开发语言·qt
zhangzhangkeji16 小时前
QT6 源(82):阅读与注释日历类型 QCalendar,本类并未完结,儒略历,格里高利历原来就是公历,
qt