这个页面的 最新开发版本 可能比这个发布的 0.4.0 版本新。

Linux 搭建命令行编译环境

下载工具

  • CMake 推荐版本:3.25.1(版本不能低于3.20),官方下载地址: CMake — Download;备用下载地址: Download

  • Ninja 推荐版本:1.11.1,官方下载地址: Ninja — Download;备用下载地址: Download

  • Ccache 推荐版本:4.7.4(可选),官方下载地址: Ccache — Download;备用下载地址: Download

  • Python 推荐使用:Python3(版本不能低于3.8),官方下载地址: Python — Download (Linux 系统提供源码包);备用下载地址: Download

  • Toolchain,官方下载地址: 工具链下载;备用下载地址: 工具链下载
    • 工具链名字大致为 csky-elfabiv2-tools-***.tar,名字中带 -mingw- 的为 Windows 系统下的工具链,其余为 Linux 系统下的。

    • Linux 系统下有些版本的工具链有可能依赖 ncurses,如提示 “error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory” 时,可安装libncurses5(如“sudo apt install libncurses5”),其它类似问题需自行研究解决。

  • 除了在上述地址下载之外,通常 Linux 类系统也可以通过自带的包管理工具进行安装,此处不再细分阐述。

  • 如果系统中已经存在这些工具,版本满足要求的话可以直接使用,无需再次下载安装。

在Linux 系统上更 推荐 使用类似 aptyumdnf 等之类包管理工具自动安装相关工具。以下是在 Ubuntu 系统上使用 apt 命令的示例,具体操作如下。

  • 安装 CMake

sudo apt-get install cmake
  • 安装 Ninja

sudo apt-get install ninja-build
  • 安装 Ccache

sudo apt-get install ccache
  • 安装 Python3

sudo apt-get install python3
  • Toolchain 工具仍需采用上面的手动方式安装。

  • 安装 Python 依赖包

当前假设已经下载了 wm_iot_sdk,其名称为 wm_iot_sdk

python -m pip install --user -r /home/wm/wm_iot_sdk/tools/wm/requirements.txt

在 Linux 系统下还需要为 Python 安装 Tkinter 模块的支持。如 Ubuntu 系统可使用 sudo apt-get install python-tk (或 sudo apt-get install python3-tk )来安装。

设置工具的环境变量

如果用户使用命令(apt、yum)来安装相关工具,则环境变量可能已被加入,无需再次设置。

  • 将 CMake 添加至环境变量

export PATH=/home/wm/tools/cmake/bin:$PATH
  • 将 Ninja 添加至环境变量

export PATH=/home/wm/tools/ninja:$PATH
  • 将 Ccache 添加至环境变量

export PATH=/home/wm/tools/ccache:$PATH
  • 将 Python 添加至环境变量

//Linux 系统下只提供了源码包,所以需要先编译,再添加至环境变量:

./configure --prefix=/home/wm/tools/python

make

make install

export PATH=/home/wm/tools/python:$PATH
  • 将 Toolchain 添加至环境变量

export PATH=/home/wm/tools/csky-elfabiv2-tools/bin:$PATH
  • 设置 WM IoT SDK 环境变量

export WM_IOT_SDK_PATH=/home/wm/wm_iot_sdk
  • 将 wm.py 工具添加至环境变量

export PATH=$WM_IOT_SDK_PATH/tools/wm:$PATH

以上操作为 临时设置,仅对当前环境有效。如果想永久生效:请将环境变量保存至 ~/.bashrc 文件。