2013-08-05 42 views
6

我在“bitbake的”的方式一个初学者,我不知道在以下情况下会发生什么情况,建设有几千包的项目时:Bitbake依赖如何为源代码工作?

  1. 您BitBake的完整图像(全包),它成功完成。
  2. 你改变了一个包 - 一些源代码(我们称之为包“X”)
  3. 你bitbake整个图像再次。

第3步是“X”重建?是否有必要增加“X”的PV和PR以便重建? “Y”包取决于“X”会发生什么?如果X重建也是“Y”重建?

我知道如果修改.bb文件,依赖包将不会生成,因为检查时间戳。它是否与源代码更改具有相同的机制? (这是一个QT项目顺便说一句,所以最终bitbake运行qmake->使编译)

我使用bitbake版本1.13.2。

谢谢

回答

0

Bitbake取决于其他系统编译,例如make。 make有能力检测包是否需要重新编译。这就是bitbake处理重编译包的方式。

3

让我试着回答这个问题。例如,你有包X,Y和Z可以说X依赖于Y和Y取决于封装Z.

  1. 如果你正在做的“默认bitbake的图像名称”和你正在建设划伤(这意味着之前没有构建default-image-name所需的软件包)。所以bitbake现在创建一个依赖关系树(你可以通过“bitbake -g PACKAGE_NAME”看到依赖关系树)。第一个包Z将构建然后Y然后最终包X.

  2. 现在让我们说你对X源代码做了一些改变,并且在不增加X配方文件中的PR号的情况下做“bitbake X” (x.bb),bitbake不会再次编译更改。我的意思是说,bitbake只是检查包版本和版本(PV和PR)。这里我们有相同的包版本(PV)和相同的包版本(PR),所以bitbake不会再次编译X包。

要在修改后编译包X,您需要将更改作为补丁应用。为了做出一些修改(例如change.diff或change.patch),请在X.bb文件中添加条目(例如,参见其他配方文件)。之后增加X.bb中的PR号。

现在“bitbake X”会再次构建X包。

  1. 这里当我们增加了X的公关时,只有X包被构建。这里bitbake将检查已经构建并具有相同PR号的相关软件包Y和Z,它将只使用已经构建的Y和Z软件包。

  2. 如果我们重新构建了Y包(如果不想增加PR编号,可以清理包中的bitbake -c clean package_name),那么X包将不会默认生成,即使它依赖于Y 。

希望得到这个帮助。