使用yocto仅构建gcc

Rav*_*i A 0 gcc4.8 yocto

我试图使用yocto仅构建gcc。我尝试使用“ bitbake-layers show-recipes”来显示gcc的多个配方,类似于bitbake -s。

#bitbake-layers show-recipes 
gcc:
  meta                 4.8.2
gcc-cross:
  meta                 4.8.2
gcc-cross-canadian-arm:
  meta                 4.8.2
gcc-cross-initial:
  meta                 4.8.2
gcc-crosssdk:
  meta                 4.8.2
gcc-crosssdk-initial:
  meta                 4.8.2
gcc-runtime:
  meta                 4.8.2
gccmakedep:
  meta                 1:1.0.2

#bitbake -s 
gcc                                                 :4.8.2-r0                          
gcc-cross                                           :4.8.2-r0                          
gcc-cross-canadian-arm                              :4.8.2-r0                          
gcc-cross-initial                                   :4.8.2-r0                          
gcc-crosssdk                                        :4.8.2-r0                          
gcc-crosssdk-initial                                :4.8.2-r0                          
gcc-runtime                                         :4.8.2-r0                          
gccmakedep                                         1:1.0.2-r3
Run Code Online (Sandbox Code Playgroud)

请指导我了解为什么有多个与gcc有关的食谱以及我必须建立的食谱。

在yocto中,配方和包装是否一对一匹配。即,对于创建每个包,只有一个对应的配方?

小智 5

依次解释每个:

  • gcc是在目标计算机本身上运行的gcc的配方。
  • gcc-cross是构建系统使用的交叉编译器。如果您为需要使用gcc编译的目标构建任何配方,则将使用该配方进行编译。
  • gcc-cross-canadian-是SDK的最终可重定位的交叉编译器,在本例中是ARM体系结构。
  • gcc-crosssdk是生产gcc-cross-加拿大的中间步骤。
  • * -initial是单独为标准交叉编译器和SDK引导工具链所需的编译器的初始版本。
  • gcc-runtime构建了gcc附带的运行时组件(例如libstdc ++)。
  • gccmakedep并不是gcc本身的一部分,它是X11实用程序的一部分,某些项目需要为每个源文件确定依赖项的脚本。

当您说“您只需要构建gcc”时,您的意思还不是很清楚,但是我怀疑它是目标的gcc(在这种情况下是“ gcc”,尽管我怀疑您可能需要的更多- packagegroup核心- buildessential可能是你想要的)或你想要一个交叉编译器,你可以单独安装在这种情况下,你可能应该bitbake meta-toolchain还是bitbake -c populate_sdk imagename。那将不仅包含gcc,而且可能仅凭gcc还是不够。