Yocto Mickledore构建中python3-pyqt5的do_configure步骤失败
解决Yocto Mickledore中python3-pyqt5 do_configure失败问题
问题原因
报错extra_args+= --disabled-feature=PyQt_Accessibility: not found源于构建脚本使用了Dash不支持的Shell语法。Yocto默认使用Dash作为系统Shell,而variable+= value这种数组追加写法属于Bash扩展语法,Dash无法识别。
解决方案
方案1:修复脚本语法兼容性
创建自定义层(如meta-myfixes),通过.bbappend文件修改python3-pyqt5的构建脚本:
- 在自定义层中创建路径:
recipes-qt/pyqt5/ - 创建对应版本的bbappend文件
python3-pyqt5_5.15.9.bbappend,内容如下:
do_configure_prepend() { # 将Dash不兼容的语法替换为标准写法 sed -i 's/extra_args+= --disabled-feature=PyQt_Accessibility/extra_args="$extra_args --disabled-feature=PyQt_Accessibility"/' ${S}/configure.py }
- 将自定义层添加到
bblayers.conf的BBLAYERS列表中
方案2:强制使用Bash执行构建
通过bbappend指定构建阶段使用Bash,以支持原有的扩展语法:
SHELL = "${BASH}"
将上述内容添加到python3-pyqt5_5.15.9.bbappend中即可。
方案3:确认meta-qt5层版本匹配
确保meta-qt5层与Yocto Mickledore版本兼容,若从OpenEmbedded拉取,需切换到mickledore分支,避免版本不匹配导致的脚本bug。
验证步骤
- 清理构建缓存:
bitbake -c cleansstate python3-pyqt5 - 重新执行构建:
bitbake core-image-sato
内容的提问来源于stack exchange,提问作者days-night
相关产品推荐
相关产品推荐

