You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

构建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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 01:15:08