在Qt Quick iOS项目中添加二维码扫描器时遇编译错误
解决Qt Quick iOS项目中QRCodeReaderViewController编译错误
错误原因
报错是因为QRCodeReaderViewController的代码使用了**自动引用计数(ARC)**特性(weak属性、__weak变量),但当前编译环境处于手动引用计数(MRC)模式,导致ARC相关语法无法被识别。
解决方案
通过qmake配置,为相关文件启用ARC编译模式,并添加必要的系统框架依赖:
配置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
- 如果仅
添加必需的iOS系统框架
原生二维码扫描依赖多个系统框架,在项目.pro文件中添加:LIBS += -framework AVFoundation -framework UIKit -framework CoreVideo -framework CoreMedia -framework ImageIO重新构建项目
执行qmake更新Xcode项目配置,再重新编译即可解决报错。
内容的提问来源于stack exchange,提问作者Alexander Dyagilev
相关产品推荐
相关产品推荐

