从零开始设置 Linux 环境下的工具链(传统 GNU Make)

[English]

注解

ESP-IDF V4.0 及之后版本的默认构建系统为 CMake。本文档主要针对之前基于 GNU Make 的传统构建系统。请注意,未来,我们可能不会继续支持基于 GNU Make 的构建系统。

注解

安装工具链的标准方法请见 这里。请参考 工具链自定义设置 章节,查看可能需要从头开始设置工具链的情况。

安装准备

编译 ESP-IDF 需要以下软件包:

  • Ubuntu and Debian:

    sudo apt-get install gcc git wget make libncurses-dev flex bison gperf python python-pip python-setuptools python-serial python-cryptography python-future python-pyparsing python-pyelftools libffi-dev libssl-dev
    
  • Arch:

    sudo pacman -S --needed gcc git make ncurses flex bison gperf python-pyserial python-cryptography python-future python-pyparsing python-pyelftools
    

注解

一些旧的(2014年之前)Linux 发行版中使用的 pyserial 版本可能是 2.x ,ESP-IDF 并不支持。这种情况下,请按照 第四步:安装 Python 软件包 章节的介绍,使用 pip 安装软件包。

从源代码编译工具链

  • 安装依赖项:

    • CentOS 7:

      sudo yum install gawk gperf grep gettext ncurses-devel python python-devel automake bison flex texinfo help2man libtool
      
    • Ubuntu pre-16.04:

      sudo apt-get install gawk gperf grep gettext libncurses-dev python python-dev automake bison flex texinfo help2man libtool
      
    • Ubuntu 16.04 或以上

      sudo apt-get install gawk gperf grep gettext python python-dev automake bison flex texinfo help2man libtool libtool-bin
      
    • Debian 9:

      sudo apt-get install gawk gperf grep gettext libncurses-dev python python-dev automake bison flex texinfo help2man libtool libtool-bin
      
    • Arch:

      TODO
      
  • 创建工作目录,并进入该目录:

    mkdir -p ~/esp
    cd ~/esp
    
  • 下载并编译 crosstool-NG

    git clone https://github.com/espressif/crosstool-NG.git
    cd crosstool-NG
    git checkout esp-2020r2
    git submodule update --init
    ./bootstrap && ./configure --enable-local && make
    
  • 编译工具链:

    ./ct-ng xtensa-esp32-elf
    ./ct-ng build
    chmod -R u+w builds/xtensa-esp32-elf
    

    编译得到的工具链会被保存到 ~/esp/crosstool-NG/builds/xtensa-esp32-elf。请按照 标准设置指南 的介绍,将工具链添加到 PATH

后续步骤

继续设置开发环境,请前往 第二步:获取 ESP-IDF 章节。