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中寻找

相关推荐
源代码•宸1 分钟前
Golang原理剖析(defer、defer面试与分析)
开发语言·经验分享·后端·面试·golang·defer·开放编码
越甲八千3 分钟前
FastAPI传参类型
开发语言·python·fastapi
南山乐只3 分钟前
Java并发原生工具:原子类 (Atomic Classes)
java·开发语言·后端
一颗青果4 分钟前
C++下的atomic | atmoic_flag | 内存顺序
java·开发语言·c++
抠脚学代码10 分钟前
Qt与Linux
linux·数据库·qt
Sylvia-girl12 分钟前
Java之异常
java·开发语言
郝学胜-神的一滴13 分钟前
Python对象的自省机制:深入探索对象的内心世界
开发语言·python·程序人生·算法
说私域18 分钟前
全民电商时代下的链动2+1模式与S2B2C商城小程序:社交裂变与供应链协同的营销革命
开发语言·人工智能·小程序·php·流量运营
且去填词25 分钟前
三色标记法与混合写屏障:Go GC 垃圾回收全流程解析
开发语言·算法·golang·三色标记法·gogc·屏障技术
froginwe1126 分钟前
`.addClass()` 方法详解
开发语言