3 使用标准 SDK

本章介绍标准 SDK 及其安装方式,包括标准 SDK 特有的安装和配置细节。

备注

标准 SDK 与可扩展 SDK 的主要功能对比,见 “简介”一节。

标准 SDK 可以用于基于 Makefile 和 Autotools 的项目。 详情见 “直接使用 SDK 工具链”一章。

3 为什么使用标准 SDK,它包含什么?

标准 SDK 提供针对特定镜像内容定制的交叉开发工具链与库。 如果希望使用较为传统的工具链,可以选择标准 SDK; 可扩展 SDK 则额外提供内部构建系统和 devtool 功能。

安装后的标准 SDK 包含若干文件和目录,主要包括 SDK 环境初始化脚本、 配置文件,以及支持使用 SDK 的主机端和目标端根文件系统。 目录结构见 “安装后的标准 SDK 目录结构”。

3 安装 SDK

首先,在 构建主机 上运行 *.sh 安装脚本来安装 SDK。

可以从发布索引中相应的 工具链目录 下载安装程序,其中包含预构建工具链、runqemu 脚本和支持文件。 x86_64 目录提供面向多种 32 位和 64 位架构的工具链。 Yocto 项目提供的工具链基于 core-image-sato 与 core-image-minimal 镜像, 包含面向相应镜像开发时所需的库。

安装脚本文件名先标明主机系统,再标明目标架构,格式如下:

poky-glibc-host_system-image_type-arch-toolchain-release_version.sh

其中:

  • host_system 表示开发系统,可以是 i686 或 x86_64。

  • image_type 表示 SDK 对应的镜像,可以是 core-image-minimal 或 core-image-sato。

  • arch 表示经过调优的目标架构,例如 aarch64、armv5e、core2-64、 i586、mips32r2、mips64、ppc7400 或 cortexa8hf-neon。

  • release_version 表示 Yocto 项目的版本,例如 6.1 或 6.1+snapshot。

例如,下面的 SDK 安装程序面向 64 位开发主机和采用 i586 调优的目标架构, 基于 6.1 版本的 core-image-sato SDK:

poky-glibc-x86_64-core-image-sato-i586-toolchain-6.1.sh

备注

除了下载 SDK,也可以自行构建安装程序。 方法见 “构建 SDK 安装程序”。

SDK 和工具链自成一体,默认安装在主目录的 poky_sdk 文件夹中。 运行安装程序时,可以为可扩展 SDK 选择其他安装位置。 不过,日常使用中需要向该目录写入文件,因此所有 SDK 使用者都必须对安装位置具有写权限。

以下示例演示如何运行面向 64 位 x86 开发主机与 64 位 x86 目标架构的工具链安装程序。 假设安装程序位于 ~/Downloads/,并已具有执行权限:

$ ./Downloads/poky-glibc-x86_64-core-image-sato-i586-toolchain-6.1.sh
Poky (Yocto Project Reference Distro) SDK installer version 6.1
===============================================================
Enter target directory for SDK (default: /opt/poky/6.1):
You are about to install the SDK to "/opt/poky/6.1". Proceed [Y/n]? Y
Extracting SDK........................................ ..............................done
Setting it up...done
SDK has been successfully set up and is ready to be used.
Each time you wish to use the SDK in a new shell session, you need to source the environment setup script e.g.
 $ . /opt/poky/6.1/environment-setup-i586-poky-linux

备注

如果没有安装目录的写权限,安装程序会提示并退出。 此时需要先设置适当的目录权限,再重新运行安装程序。

安装后的目录结构详情仍可参阅 “安装后的标准 SDK 目录结构”。

3 运行 SDK 环境初始化脚本

安装 SDK 后,必须先运行环境初始化脚本,才能实际使用 SDK。 脚本位于安装时选择的目录中,可能是默认的 /opt/poky/6.1, 也可能是自行指定的目录。

运行前,要确认脚本对应正在开发的目标架构。 脚本名称以 environment-setup 开头,并包含经过调优的目标架构名称。 下面的示例载入面向采用 i586 调优的 IA 目标机器的环境脚本:

$ source /opt/poky/6.1/environment-setup-i586-poky-linux

运行脚本后,会定义与可扩展 SDK 环境初始化脚本相同的环境变量。 更多说明见 “安装后的可扩展 SDK 目录结构”。