首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Bitbake -c清除源

Bitbake -c清除源
EN

Stack Overflow用户
提问于 2016-05-10 07:30:00
回答 3查看 29.4K关注 0票数 12

我是“BitBake”的初学者。我需要修改源代码并构建它。我发现源代码位于build/tmp/work/目录中,目录的名称是git提交id。我想重建源头。所以我给了bitbake -c clean <package_name>,然后是bitbake <package_name>。图像被建好了。但是,当我回去修改源代码时,git存储库似乎在它的位置上丢失了。

( 1)如何取回来源?

( 2)修改后重建资源的安全途径是什么?

提前谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-05-10 08:10:11

( 1)如何取回来源?

代码语言:javascript
复制
bitbake -ccleansstate <package_name>
bitbake <package_name>

这将确保bitbake不会使用共享状态,并且必须在第二个命令期间实际执行所有任务(包括解包和修补程序,后者将填充$WORKDIR目录中的源代码)。

( 2)修改后重建资源的安全途径是什么?

如果您想以快速的方式修改$WORKDIR中的源代码,那么

代码语言:javascript
复制
bitbake -f -ccompile <package_name>
bitbake <package_name>

将编译任务标记为脏,当下一个命令生成配方时,从编译开始的所有任务都将被执行。注意,bitbake将警告您在执行cleansstate之前的脏状态,并且cleansstate将在更改的同时删除$WORKDIR :因此,这只对快速测试很有用。

如果您正在寻找一种方法来进行更多的开发,并且仍然在开发的同时使用yocto/OE构建快速测试一些东西,那么请看一看发展工具。我期望第4.3.1.2部分。(使用devtool修改来启用与现有菜谱相关的代码工作)可能与您相关。

票数 15
EN

Stack Overflow用户

发布于 2017-06-16 07:17:42

代码语言:javascript
复制
bitbake -c cleansstate <package name>

不会删除源,因此do_fetch内容将保持原样。下一次

代码语言:javascript
复制
bitbake <package name>

因此,do_fetch将不再执行下一次,而是执行其余的。例如do_patch、do_metadata、do_compile等。如果您想尝试在源级别进行一些更改,也可以尝试

代码语言:javascript
复制
bitbake <package name> -c devshell

我发现devshell是一种方便的方法,可以尝试一些源代码或包内级别的更改和试用。它确实在包位置打开了一个新的shell。在这里您可以在本地提供命令。就像make一样简单。

票数 4
EN

Stack Overflow用户

发布于 2016-05-10 12:04:25

除了伟大的jku的回答:

加1)我怎样才能拿回资料来源?

您只需获取源代码,就不会执行其他任务:

代码语言:javascript
复制
bitbake -c fetch -f <package_name>

一般通过:

代码语言:javascript
复制
bitbake -c clean <package_name>

或使用武力选择:

代码语言:javascript
复制
bitbake -c clean -f <package_name>

您已经从负责此包的配方中触发了任务do_clean。通过检查任务代码(直接在菜谱中或在继承的菜谱中),到底要做什么。同样,在同一个目录中,构建/tmp/work/您可以为每个已执行的任务找到一个/temp/和日志。例如: log.do_fetch将包含此特定包的任务do_fetch()的输出。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37131950

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档