Yocto理論篇 Yocto交叉開發工具鏈生成

2021-10-11 21:46:52 字數 1654 閱讀 8755

當涉及到建立交叉開發工具鏈時,yocto project 將完成大部分工作。在yocto專案開發環境中,交叉開發工具鏈用於構建在目標硬體上執行的映象和應用程式。只需幾個命令,openembedded構建系統就可以建立這些必要的工具鏈。

下圖顯示了關於工具鏈構造和使用的高階構建環境。

大部分工作發生在build host上。這是用於構建映象的機器,通常在yocto project 環境中工作。執行bitbake 建立映象時,openembedded構建系統使用主機gcc編譯器引導名為gcc-cross的交叉編譯器。gcc-cross編譯器是bitbake在建立目標映象時用來編譯原始檔的。可以將gcc-cross簡單地看作是乙個自動生成的交叉編譯器,只在bitbake內部使用。

注意:extensible sdk不使用gcc-cross-canadian,因為此sdk提供了openembedded構建系統的副本,其中的sysroot包含gcc-cross

啟動gcc-cross時發生的事件鏈如下:

gcc -> binutils-cross -> gcc-cross-initial -> linux-libc-headers -> glibc-initial -> glibc -> gcc-cross -> gcc-runtime
注意:如果要用自定義版本替換此交叉編譯器工具鏈,則必須替換gcc-cross。此工具也是乙個「native」包(即它被設計為在構建主機上執行)。可以使用openembedded構建系統來為用於開發應用程式的可重定位sdk構建安裝程式。當您執行安裝程式時,它會安裝包含開發工具(例如gcc-cross-canadia、binutils-cross-canadian和其他nativesdk-*工具)的工具鏈,這些工具是sdk的原生工具(即sdk_arch的原生工具),需要交叉編譯和測試軟體。此圖顯示了用於輕鬆構建此工具鏈的命令。這個交叉開發工具鏈是為了在sdkmachine上執行而構建的,可能與構建主機可能是同一臺機器,也可能不是同一臺機器。注意:如果您的目標體系結構受yocto project的支援,那麼可以利用yocto project附帶的、已經包含交叉開發工具鏈安裝程式的預構建映象。以下是可重定位工具鏈的引導過程:

gcc -> binutils-crosssdk -> gcc-crosssdk-initial -> linux-libc-headers ->

glibc-initial -> nativesdk-glibc -> gcc-crosssdk -> gcc-cross-canadian

Yocto 學習總結

如 error fetcher failure for url checksum mismatch 2.bitbake ncurses f c install 3.uboot 改動的地方最可能是include configs mx6qarm2.h 1.yocto 開機介面 a 修改需要開機畫面的為p...

YOCTO專案概述

getting started the yocto project overview yocto專案概述 目錄2 yocto專案概述 1 3 layer模型 定製的關鍵 2 4 yocto專案維護的元件和工具 2 5 一般的工作流程 4 6 開發環境的搭建 5 7 參考的嵌入式發行版 poky 5 ...

yocto 快速構建

2.安裝yoctor所需要的安裝包 sudo apt get install sed wget subversion git core coreutils unzip texi2html texinfo libsdl1.2 dev docbook utils fop gawk python pysq...