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

Yocto Sumo版本BB_NO_NETWORK=1构建失败:Qt无分支提交获取问题

解决Yocto Sumo无网络构建时获取无分支关联Git提交的问题

针对你遇到的qtbase-native构建问题——目标提交(v5.12.11标签对应)不属于任何分支,且BB_NO_NETWORK=1禁止联网的情况,可以通过以下几种方法解决:

1. 为qtbase-native添加.bbappend,跳过分支检查

创建qtbase-native_git.bbappend文件,写入以下配置,直接指定目标提交并禁用分支校验:

# 移除原分支参数,添加nobranch=1跳过分支检查
SRC_URI = "git://code.qt.io/qt/qtbase.git;protocol=https;nobranch=1"
# 替换为v5.12.11标签对应的完整40位提交哈希
SRCREV = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
# 解决本地仓库跨文件系统的分支发现问题
GIT_DISCOVERY_ACROSS_FILESYSTEM = "1"

核心是nobranch=1参数,它会告诉BitBake的Git fetcher不要检查分支是否存在,直接使用指定的SRCREV拉取代码。

2. 预准备本地Git镜像确保提交存在

因为BB_NO_NETWORK=1禁止联网,必须提前把目标提交同步到本地镜像:

  • 联网环境下手动克隆仓库并切换到目标标签:
    git clone https://code.qt.io/qt/qtbase.git
    cd qtbase
    git checkout v5.12.11
    
  • 在Yocto的local.conf中配置本地镜像路径:
    SOURCE_MIRROR_URL = "file:///path/to/your/local/git/mirrors/"
    BB_SRC_URI_POLICY = "cache"
    

确保本地镜像包含该无分支提交后,配合上面的.bbappend配置即可构建。

3. 批量修改qt5-git.inc通用配置(可选)

如果多个Qt模块都有类似无分支提交的问题,可以统一修改meta-qt5/recipes-qt/qt5/qt5-git.inc:

# 全局禁用分支检查
SRC_URI_append = ";nobranch=1"
# 解决本地仓库分支发现问题
GIT_DISCOVERY_ACROSS_FILESYSTEM = "1"

之后每个Qt模块只需在各自的recipe或.bbappend中指定正确的SRCREV即可。

关键注意事项

  • 必须使用完整的40位提交哈希作为SRCREV,避免哈希冲突或歧义
  • 本地镜像中必须提前同步好目标提交,BB_NO_NETWORK=1时不会触发联网拉取
  • GIT_DISCOVERY_ACROSS_FILESYSTEM用于解决构建器在访问本地镜像仓库时的分支检查报错问题

内容的提问来源于stack exchange,提问作者paulo-lddx

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 14:45:25