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 目录结构”。