当前位置: 首页 > article >正文

Qt找不到windows API报错:error: LNK2019: 无法解析的外部符号 __imp_OpenClipboard

笔者在开发中出现的bug完整报错如下:

spcm_ostools_win.obj:-1: error: LNK2019: 无法解析的外部符号 __imp_OpenClipboard,函数 "void __cdecl spcmdrv::vCopyToClipboard(char const *,unsigned __int64)" (?vCopyToClipboard@spcmdrv@@YAXPEBD_K@Z) 中引用了该符号

依然是常见的链接不到宏定义/函数的问题,但是这次不同的是,报错的符号来自:C:\Program Files (x86)\Windows Kits\10\Include\10.0.20348.0\um\WinUser.h

也就是windows SDK下的头文件和库。

分析:

1. 通常来讲出现这个问题首先考虑的原因是编译器的选择,因为这是Visual Studio配置环境时要下载的windows sdk组件,也就是说,只有在MSVC模式下才能用上,MinGW是Qt自带的编译器,是没有这个套件的。所以应该先检查当前的构建套件是不是有效的MSVC20XX。

2. 然后应该检查windows kits的 Include、Lib、bin 文件是不是添加到了系统的环境变量里

排查了这两个问题以后,报错依然没有消失,说明编译器依然没有找到对应的windows API,笔者尝试使用手动添加LIB和INCLUDE 路径的方式,试图让编译器找到符号对应的头文件,语句如下:

win32 {INCLUDEPATH += "C:/Program Files (x86)/Windows Kits/10/Include/10.x.x.x/ucrt"INCLUDEPATH += "C:/Program Files (x86)/Windows Kits/10/Include/10.x.x.x/um"# 根据需要添加其他目录
}win32 {LIBS += -L"C:/Program Files (x86)/Windows Kits/10/Lib/10.x.x.x/ucrt/x64"LIBS += -L"C:/Program Files (x86)/Windows Kits/10/Lib/10.x.x.x/um/x64"# 根据需要添加其他目录或特定库文件
}

并无卵用......

经多次失败经验证明,试图通过添加上述语句完成添加外部库,从而让编译器找到库文件,完全行不通!!!!!!编译器不会报错,但是也不会找到里面的lib文件!!!无论是什么库!

这个符号属于Windows API的一部分,通常与用户32库(User32.lib)相关联。只需要在.pro文件中,增加下述语句,就可以了。

win32 {LIBS += -lUser32
}

对应地,在使用这个符号的代码文件中,需要引入windows头文件

#include <windows.h>

清除之前的构建,重新构建工程,报错就消失了

http://www.lryc.cn/news/2386963.html

相关文章:

  • 机试 | vector/array Minimum Glutton C++
  • OpenCv高阶(十七)——dlib库安装、dlib人脸检测
  • 前端内容黑白处理、轮播图、奇妙的头像特效
  • 蓝桥杯 10. 安全序列
  • (10)-java+ selenium->元素之By class name
  • Git - .gitignore 文件
  • MPI与多线程(如OpenMP)混合编程注意事项与性能优化
  • 计算机网络学习(八)——MAC
  • 英语六级-阅读篇
  • 右键打开 pycharm 右键 pycharm
  • 机器人坐标系标定
  • Flink流处理基础概论
  • 【RabbitMQ】记录 InvalidDefinitionException: Java 8 date/time type
  • 如何通过API接口实现自动化上货跨平台铺货?商品采集|商品上传实现详细步骤
  • 《三维点如何映射到图像像素?——相机投影模型详解》
  • Go 语言范围循环变量重用问题与 VSCode 调试解决方法
  • 青少年编程与数学 02-020 C#程序设计基础 04课题、常量和变量
  • 零基础设计模式——结构型模式 - 适配器模式
  • 【QT】TXT文件的基础操作
  • WordPress多语言插件安装与使用教程
  • 互联网大厂Java求职面试:短视频平台大规模实时互动系统架构设计
  • 欣佰特科技|SenseGlove Nova2 力反馈数据手套:助力外科手术训练的精准触觉模拟
  • Axure元件动作七:移动、旋转、启用/禁用效果、置于顶层/底层详解
  • 网络安全-等级保护(等保) 3-2-2 GB/T 28449-2019 第7章 现场测评活动/第8章 报告编制活动
  • Flutter跨平台通信实战|3步打通Android原生能力,实现底层API调用!
  • IAM角色访问AWS RDS For MySQL
  • android property 系统
  • Karakeep | 支持Docker/NAS 私有化部署!稍后阅读工具告别云端依赖,让知识收藏更有序
  • RV1126+FFMPEG多路码流监控项目大体讲解
  • el-dialog 组件 多层嵌套 被遮罩问题