构建Qt程序时如何在CMake中使用原有的qmake编译参数
Qt 编译参数 QMake 转 CMake 适配方案
针对 qtconnectivity 原生蓝牙参数的配置方法
构建新版本 qtconnectivity 库时,原 qmake 的 -native-win32-bluetooth 参数对应的 CMake 配置项为 QT_FEATURE_native_win32_bluetooth,使用方式分两种:
- 命令行配置阶段直接传入参数:
cmake -S <源码路径> -B <构建目录路径> -DQT_FEATURE_native_win32_bluetooth=ON
- 若要在 CMakeLists.txt 中预设该参数,可添加如下代码:
set(QT_FEATURE_native_win32_bluetooth ON CACHE BOOL "启用原生Win32蓝牙后端" FORCE)
通用场景 QMake 编译标识转 CMake 规则
- Qt 官方模块的 qmake 特性参数,在 CMake 体系下统一转换为
QT_FEATURE_<参数名>格式:原参数的横杠分隔符需替换为下划线,全小写命名,例如 qmake 参数-enable-foo-bar对应 CMake 配置项QT_FEATURE_enable_foo_bar,开启时赋值为ON,关闭时赋值为OFF。 - 若为自有项目的 qmake 常规配置项转 CMake:
- 原
QT += <组件名>对应 CMake 中先通过find_package(Qt6 REQUIRED COMPONENTS <组件名>)引入组件,再通过target_link_libraries(<你的目标名> PRIVATE Qt6::<组件名>)关联到目标。 - 原
CONFIG += <配置项>中的通用配置对应 CMake 内置变量,例如CONFIG += c++17对应set(CMAKE_CXX_STANDARD 17);Qt 特有 CONFIG 项一般也对应QT_FEATURE_开头的配置项。 - 原
QMAKE_CXXFLAGS/QMAKE_LFLAGS等编译链接参数,对应 CMake 的target_compile_options/target_link_options配置。
- 原
- 若不确定参数对应关系,可在对应 Qt 模块的源码目录下执行
cmake -L .查看所有可配置的QT_FEATURE_开头参数列表,也可直接查看模块源码中的feature.cmake相关文件确认规则。
内容的提问来源于stack exchange,提问作者L. Drail
相关产品推荐
相关产品推荐

