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 生成项目,而无需开发人员更改项目文件。
相关推荐
小鱼仙官5 小时前
使用Qt封装C/C++ 动态库 用于第三方调用
c语言·c++·qt
扶尔魔ocy7 小时前
【QT OpenGL】知识点编目及传送门
qt·opengl·osg
qq_401700418 小时前
Qt Modbus 源码剖析:从 QModbusClient 到工业级通信框架
开发语言·qt·系统架构
GreenHandBruce8 小时前
基于Qt 6.12.0 + FFmpeg 9.0.2的4k视频播放器
qt·ffmpeg·音视频
誰能久伴不乏11 小时前
桌面客户端的运行日志系统:SQLite 分块 + 独立写线程 + 文本降级
数据库·c++·qt·架构·sqlite
沫璃染墨1 天前
《Qt从零入门系列(十五):Qt线程安全与锁机制详解——从QMutex到RAII与读写锁实战》
开发语言·c++·qt·安全·交互·线程·qt6.3
小豆庄1 天前
视频脱敏引擎的追踪难题:转场误判定、ID撞号和淡入窗口
qt·算法·目标检测·音视频·视频·敏捷流程
小灰灰搞电子1 天前
Qt 中使用 QSettings 存储结构体数据详解
开发语言·qt
LaoWaiHang2 天前
关于Qt中鼠标左键事件被子控件截留的处理
qt
初阳7852 天前
【基于Qt5仿音乐播放器(一)】——项目准备
qt·1024程序员节