环境变量

本文档中的多个页面都涉及设置 Zephyr 特定的环境变量。本页介绍具体的设置方法。

设置变量

选项 1:仅设置一次

要在当前终端窗口的整个生命周期内将环境变量 MY_VARIABLE 设置为 foo ,请执行以下操作:

export MY_VARIABLE=foo

警告

这种方式最适合进行试验。如果关闭终端窗口、改用另一个终端窗口或标签页、重启计算机等,该设置将永久丢失。

如果要继续使用该设置,建议使用选项 2 或选项 3。

选项 2:在所有终端中

将 export MY_VARIABLE=foo 这一行添加到主目录中的 shell 启动脚本里。对于 Bash,在 Linux 上通常是 ~/.bashrc ,在 macOS 上通常是 ~/.bash_profile 。这些启动脚本中的更改不会影响已经启动的 shell 实例;请尝试打开新的终端窗口以获取新设置。

选项 3:使用 zephyrrc 文件

如果你不希望变量的设置可供所有终端使用,但仍希望保存该值,以便在使用 Zephyr 时将其加载到环境中,请选择此选项。

Zephyr 支持将 zephyrrc 文件放置在多个位置,并在可能时遵循 XDG Base Directory Specification。请在以下某个位置创建 zephyrrc 文件(这些位置将按顺序检查):

  1. $XDG_CONFIG_HOME/zephyr/zephyrrc

  2. $HOME/.config/zephyr/zephyrrc

  3. $HOME/.zephyrrc

将以下行添加到首选位置的文件中:

export MY_VARIABLE=foo

要将该值重新加载到当前终端环境中,你必须运行 主 zephyr 仓库中的 source zephyr-env.sh 。除此之外,该脚本还会 source 你的 zephyrrc 文件(它会从上述位置列表中找到第一个文件)。

如果关闭窗口等,该值将会丢失;请再次运行 source zephyr-env.sh 以将其恢复。

Zephyr 环境脚本

你可以使用 zephyr 仓库中的脚本 zephyr-env.sh (适用于 macOS 和 Linux)和 zephyr-env.cmd (适用于 Windows),将 Zephyr 特定设置加载到当前终端的环境中。为此,请从 zephyr 仓库运行以下命令:

source zephyr-env.sh

这些脚本会:

  • 将 ZEPHYR_BASE 设置为 zephyr 仓库所在位置

  • 将一些 Zephyr 特定位置(例如 zephyr 的 scripts 目录)添加到你的 PATH 环境变量中

  • 加载上述 选项 3:使用 zephyrrc 文件 中描述的 zephyrrc 文件中的任何设置。

因此,你可以在需要这些设置时随时使用它们。

重要的环境变量

某些 重要的构建系统变量 也可以在环境中设置。下面介绍其中一些重要的环境变量。这并不是一份完整的列表。

BOARD

参见 重要的构建系统变量 。

CONF_FILE

参见 重要的构建系统变量 。

SHIELD

参见 扩展板 。

ZEPHYR_BASE

参见 重要的构建系统变量 。

EXTRA_ZEPHYR_MODULES

参见 重要的构建系统变量 。

ZEPHYR_MODULES

参见 重要的构建系统变量 。

ZEPHYR_BOARD_ALIASES

参见 开发板别名

在配置用于构建 Zephyr 应用的 工具链 时,以下附加环境变量非常重要。

ZEPHYR_SDK_INSTALL_DIR

Zephyr SDK 的安装路径。

ZEPHYR_TOOLCHAIN_VARIANT

要使用的工具链名称。

{TOOLCHAIN}_TOOLCHAIN_PATH

由 ZEPHYR_TOOLCHAIN_VARIANT 指定的工具链路径。例如,如果 ZEPHYR_TOOLCHAIN_VARIANT=host/llvm ,则应使用 LLVM_TOOLCHAIN_PATH 。(请注意在构成环境变量名时的大小写。)

当你 更新 Zephyr SDK 工具链 时,可能需要更新其中一些变量。

模拟器和开发板还可能依赖其他程序。构建系统会尝试自动定位这些程序,但可能依赖额外的 CMake 或环境变量来完成定位。有关更多信息,请查阅模拟器或开发板的文档。在此类情况下,以下环境变量可能会有所帮助:

PATH

PATH 是在类 Unix 或 Microsoft Windows 操作系统上使用的一种环境变量,用于指定可执行程序所在的一组目录。