Qt Debug

Hudi
2025-09-08 / 0 评论 / 1 阅读 / 正在检测是否收录...

一、问题现象

qt版本:6.5.3

蓝牙不可用:

qt.bluetooth: Dummy backend running. Qt Bluetooth module is non-functional.

1749118548952

二、问题原因

在 Windows 开发环境下使用 Qt + MinGW 时遇到 qt.bluetooth: Dummy backend running. Qt Bluetooth module is non-functional 错误,说明 Qt 的蓝牙模块无法正常工作。这是因为 MinGW 编译的 Qt 默认不支持 Windows 的蓝牙 API(仅 MSVC 支持)。

三、解决方案

使用MSVC编译器

使用MSVC编译器有很多方法,但我找到一个对小白最友好的方法,下载对应版本的Visual Studio即可

1. 查看qt的MSVC版本

image-20250606100445952

如果没有在下载组件的时候需要把MSVC勾选上

image-20250606101027564

2. 安装MSVC编译器和Windows 11 SDK

打开Visual Studio Installer,如点击修改(没安装vs的跳过这里直接看下载组件):

image-20250606101526133

工作负荷中勾选使用C++的桌面开发,以及Windows 11 SDK:(如果电脑是win10 就选win10 不确定的可以11和10都选上)

image-20250606104310414

单个组件中勾选自己要安装的编译器:

image-20250606104545845

然后下载等待安装完成即可,后面开始配置qt

3. qt配置MSVC编译器

打开Qt Creator,进去kits,添加msvc编辑器

image-20250606105228250

image-20250606110106001

以上则已配置完成

4. 测试

配置时则可选择刚才配置好的MSVC编译器

image-20250606110735945

5. 注意

我这边编译时出了又出了两个问题:(大家若也遇到给大家参考下)

5.1 问题1

编译时出现版本问题:QMAKE_MSC_VER,这是msvc版本切换时没对应上

image-20250606111140012

解决方法:

找到对应qt版本目录下common文件夹下的msvc-version.conf文件添加自己msvc的版本号:

image-20250606111734381

image-20250606111923501

QMAKE_MSC_VER = 1920我用的2019对应的是1920:下面几个版本可以参考

    # MSVC 2022 (v143)
    QMAKE_MSC_VER = 1930
    
    # MSVC 2019 (v142)
    # QMAKE_MSC_VER = 1920
    
    # MSVC 2017 (v141)
    # QMAKE_MSC_VER = 1910

改完保存重新编译即可

5.2 问题2

编译时遇到编码格式问题:

warning: C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失

error: C2001: 常量中有换行符

解决方法:

QT界面菜单栏->编辑->Slect Encoding...->system>按编码保存

image-20250606114927700

四、总结

在Windows平台开发Qt蓝牙应用时,必须使用MSVC编译器而非MinGW,通过安装匹配版本的Visual Studio和Windows SDK,并在Qt Creator中正确配置MSVC工具链,可解决"qt.bluetooth: Dummy backend running"问题。开发过程中需注意版本匹配和文件编码问题,建议采用UTF-8 with BOM编码格式以确保项目顺利编译运行。

以上参考博客:
Qt 添加MSVC2017编译器(2022年保姆级教程,不安装完整VS)_qt msvc2017-CSDN博客

关于 Qt使用MSVC版本编译出现“QMAKE_MSC_VER” 的解决方法_qmake msc ver-CSDN博客

qt.bluetooth: Dummy backend running. Qt Bluetooth module is non-functional | Qt Forum

[解决方法]C++ : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符-CSDN博客

解决VS编译中文报错 error C2001:常量中有换行符_vs编译 error c2001: 常量中有换行符-CSDN博客

0

评论 (0)

取消