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

在Qt Quick iOS项目中添加二维码扫描器时遇编译错误

解决Qt Quick iOS项目中QRCodeReaderViewController编译错误

错误原因

报错是因为QRCodeReaderViewController的代码使用了**自动引用计数(ARC)**特性(weak属性、__weak变量),但当前编译环境处于手动引用计数(MRC)模式,导致ARC相关语法无法被识别。

解决方案

通过qmake配置,为相关文件启用ARC编译模式,并添加必要的系统框架依赖:

  1. 配置ARC编译标志

    • 如果仅QRCodeReaderViewController.m需要ARC,可精准配置:
      # 添加目标源文件
      OBJECTIVE_SOURCES += ../ios/QRCodeReaderViewController/QRCodeReaderViewController.m
      
      # 为该文件单独启用ARC编译
      for(sourcefile, OBJECTIVE_SOURCES) {
          contains(sourcefile, QRCodeReaderViewController.m) {
              QMAKE_OBJECTIVE_CFLAGS_FILE_$${sourcefile} += -fobjc-arc
          }
      }
      
    • 如果整个项目可以切换为ARC模式,直接全局启用更简单:
      QMAKE_OBJECTIVE_CFLAGS += -fobjc-arc
      
  2. 添加必需的iOS系统框架
    原生二维码扫描依赖多个系统框架,在项目.pro文件中添加:

    LIBS += -framework AVFoundation -framework UIKit -framework CoreVideo -framework CoreMedia -framework ImageIO
    
  3. 重新构建项目
    执行qmake更新Xcode项目配置,再重新编译即可解决报错。

内容的提问来源于stack exchange,提问作者Alexander Dyagilev

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 07:55:12