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 生成项目,而无需开发人员更改项目文件。
相关推荐
甄同学20 小时前
第二十篇:MCP协议集成,Claude Code如何扩展AI Agent的能力边界
开发语言·人工智能·qt
Liknana21 小时前
Qt 圆角表格控件实战:setMask + 抗锯齿描边 + 多层阴影
qt·ui
Scott9999HH1 天前
2026 避坑实录:国产品牌压力变送器什么牌子好?从硬件抗扰到 C++ Qt 实时曲线绘制源码剖析
开发语言·c++·qt
皓悦编程记2 天前
【YOLO26 系列】基于YOLO26的垃圾分类检测系统【python源码+Pyqt5界面/WEB+数据集+训练代码】
python·qt·分类
十五年专注C++开发2 天前
qobject_cast转换失败原因分析
c++·qt·dynamic_cast·qobject_cast
sycmancia2 天前
Qt——线程的生命期问题
开发语言·qt
闻道且行之2 天前
TurboOCR:基于PP-OCRv6的极速Windows离线OCR工具,深度解析3.4GB依赖背后的技术架构
c++·人工智能·python·qt·机器学习·ocr
气概3 天前
QT集成basler相机
开发语言·数码相机·qt
GIS阵地3 天前
QgsRasterDataProvider 完整详解(QGIS 3.40.13 C++)
开发语言·c++·qt·开源软件·qgis
sycmancia4 天前
Qt——多线程中的信号与槽(二)
jvm·qt