BuildRoot编译KubOS时pothos-core依赖Git仓库不存在如何解决
解决方案
你遇到的是pothos-core包依赖的子模块仓库失效问题,以下是两种可行的解决路径:
方案1:移除pothos-core包(优先推荐,操作最简单)
如果你的项目不需要用到pothos相关的信号处理功能,可以直接取消该包的编译配置:
- 进入BuildRoot根目录,执行
make menuconfig进入配置界面 - 按
/键调出搜索框,输入POTHOS_CORE搜索对应的配置项 - 找到该配置项后按
N键取消选中(前方的*标记会消失) - 按方向键选择
<Save>保存配置,再选择<Exit>退出配置界面 - 执行
make clean清理之前的构建缓存 - 重新执行
make构建即可
如果不习惯用menuconfig,也可以直接编辑BuildRoot根目录下的.config文件,找到CONFIG_PACKAGE_POTHOS_CORE=y这一行,修改为# CONFIG_PACKAGE_POTHOS_CORE is not set即可,后续操作和上面一致。
方案2:替换失效的子模块仓库(适用于必须保留pothos-core的场景)
如果你需要用到pothos-core的功能,需要修改该包的配置替换失效的qwt仓库地址:
- 首先找到pothos-core的包定义文件,默认路径为
BuildRoot根目录/package/pothos-core/pothos-core.mk,如果是KubOS自定义的包,也可以在KubOS的自定义package目录下搜索 - 方法A:添加补丁修改.gitmodules
进入pothos-core的包目录,新建补丁文件修改pothos-core源码中的.gitmodules文件,将plotters子模块下qwt6的失效仓库地址替换为可用的qwt镜像仓库地址,然后在pothos-core.mk中声明该补丁,BuildRoot构建时会自动应用补丁替换地址 - 方法B:手动预下载源码跳过拉取步骤
手动找到可用的qwt源码,下载后放到BuildRoot的dl/pothos-core/git/plotters/qwt6目录下,同时修改对应子模块的commit标记为匹配的版本,BuildRoot检测到源码已存在就不会再尝试拉取远程仓库
内容的提问来源于stack exchange,提问作者Gman0064
相关产品推荐
相关产品推荐

