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 生成项目,而无需开发人员更改项目文件。
相关推荐
人工智能教学实践1 小时前
基于 YOLOv8+PyQt5 界面自适应的无人机红外目标检测系统项目介绍框架
qt·yolo·无人机
誰能久伴不乏1 小时前
从零开始:用Qt开发一个功能强大的文本编辑器——WPS项目全解析
数据库·qt·wps
m0_699659568 小时前
QT知识点复习
开发语言·qt
深蓝海拓10 小时前
基于深度学习的视觉检测小项目(十六) 用户管理界面的组态
人工智能·python·深度学习·qt·pyqt
弄不死的强仔12 小时前
可被electron等调用的Qt截图-录屏工具【源码开放】
前端·javascript·qt·electron·贴图·qt5
行十万里人生1 天前
Qt事件处理:理解处理器、过滤器与事件系统
开发语言·git·qt·华为od·华为·华为云·harmonyos
黑金IT1 天前
Python3 + Qt5:实现AJAX异步更新UI
qt·ui·ajax
人工智能教学实践1 天前
基于 yolov8_pyqt5 自适应界面设计的火灾检测系统 demo:毕业设计参考
qt·yolo·课程设计
扎量丙不要犟1 天前
跨平台的客户端gui到底是选“原生”还是web
前端·javascript·c++·qt·rust·electron·tauri
笑鸿的学习笔记2 天前
qt-Quick3D笔记之官方例程Runtimeloader Example运行笔记
笔记·qt·3d