CMake是怎么找到Qt相关模块的

当我们使用QT创建了一个CMake项目后,我们尝试使用CMake编译时,会遇到找不到Qt的模块的问题,

find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Widgets WebSockets WebEngineWidgets)

复制代码

深入了解find_package之后,我们就明白COMPONENTS其实是一个选项,列出来了必选的模块。

一般我们不会在CMakeLists里面硬编码CMAKE_PREFIX_PATH,推荐通过环境变量找到模块。

Qt的模块是放在Qt/5.15.2/clang_64/lib/cmake,所以我们只需要配置

QT_DIR=Qt/5.15.2/clang_64

即可,因为find_package的prefix查找机制会自动补全lib/cmake部分:

cpp 复制代码
- <prefix>/
- <prefix>/(lib/<arch>|lib*|share)/cmake/<name>*/

复制代码

这样就能找到Qt的模块了

记得将QT_DIR环境变量放到PATH中,因为find_package会从PATH中寻找

相关推荐
dangdang___go13 分钟前
文件操作c语言
c语言·开发语言
塔能物联运维15 分钟前
设备断网时数据丢失,后来启用本地缓存+异步重传队列
java·开发语言·缓存
天涯路s30 分钟前
qt怎么自定义日志
开发语言·qt
Evand J35 分钟前
【自适应IMM】MATLAB编写的创新多模型,基于CA/CT双模型和观测自适应。二维平面目标位置估计,带误差统计特性输出,附代码下载链接
开发语言·matlab·ekf·imm·交互式多模型
我命由我1234538 分钟前
微信小程序 - scroll-view 的一些要点(scroll-view 需要设置滚动方向、scroll-view 需要设置高度)
开发语言·前端·javascript·微信小程序·小程序·前端框架·js
7哥♡ۣۖᝰꫛꫀꪝۣℋ39 分钟前
Spring IoC&DI
java·开发语言·mysql
wadesir43 分钟前
Go语言反射之结构体的深比较(详解reflect.DeepEqual在结构体比较中的应用)
开发语言·后端·golang
你不是我我1 小时前
【Java 开发日记】我们来说一说 Redis IO 多路复用模型
java·开发语言·redis
想七想八不如114081 小时前
408操作系统 PV专题
开发语言·算法