Linux 平台工具链的标准设置 (CMake)¶
注解
本文档将介绍如何使用 CMake 编译系统。目前,CMake 编译系统仍处于预览发布阶段,如您在使用中遇到任何问题,请前往 ESP-IDF 提交 Issues。
未来,CMake 编译系统将在 ESP-IDF v4.0 发布后过渡为默认编译系统,现行基于 GNU Make 的编译系统将在 ESP-IDF v5.0 后弃用。
安装前提¶
编译 ESP-IDF 需要以下软件包:
- CentOS 7: - sudo yum install git wget ncurses-devel flex bison gperf python pyserial cmake ninja-build ccache 
- Ubuntu 和 Debian: - sudo apt-get install git wget libncurses-dev flex bison gperf python python-pip python-setuptools python-serial python-cryptography python-future python-pyparsing cmake ninja-build ccache libffi-dev libssl-dev 
- Arch: - sudo pacman -S --needed gcc git make ncurses flex bison gperf python2-pyserial python2-cryptography python2-future python2-pyparsing cmake ninja ccache 
注解
使用 ESP-IDF 需要 CMake 3.5 或以上版本。较早版本的 Linux 可能需要升级才能向后移植仓库,或安装 “cmake3” 软件包,而不是安装 “cmake”。
工具链的设置¶
Linux 版的 ESP32 工具链可以从 Espressif 的网站下载:
- 64 位 Linux: - https://dl.espressif.com/dl/xtensa-esp32-elf-linux64-1.22.0-97-gc752ad5-5.2.0.tar.gz 
- 32 位 Linux: - https://dl.espressif.com/dl/xtensa-esp32-elf-linux32-1.22.0-97-gc752ad5-5.2.0.tar.gz 
- 下载完成后,将它解压到 - ~/esp目录:- for 64-bit Linux: - mkdir -p ~/esp cd ~/esp tar -xzf ~/Downloads/xtensa-esp32-elf-linux64-1.22.0-97-gc752ad5-5.2.0.tar.gz 
- for 32-bit Linux: - mkdir -p ~/esp cd ~/esp tar -xzf ~/Downloads/xtensa-esp32-elf-linux32-1.22.0-97-gc752ad5-5.2.0.tar.gz 
 
- 工具链将会被解压到 - ~/esp/xtensa-esp32-elf/目录。- 要使用工具链,你还需要在 - ~/.profile文件中更新环境变量- PATH。要使- xtensa-esp32-elf在所有的终端会话中都有效,需要将下面这一行代码添加到你的- ~/.profile文件中::- export PATH="$HOME/esp/xtensa-esp32-elf/bin:$PATH" - 或者,你也可以给上面的命令创建一个别名。这样做的好处是,你仅在需要时才获取工具链,将下面这行代码添加到 - ~/.profile文件中即可:- alias get_esp32='export PATH="$HOME/esp/xtensa-esp32-elf/bin:$PATH"' - 然后,当你需要使用工具链时,在命令行输入 - get_esp32,然后工具链会自动添加到你的- PATH中。- 注解 - 如果将 - /bin/bash设置为登录 shell,且同时存在- .bash_profile和- .profile,则更新- .bash_profile。
- 退出并重新登录以使 - .profile更改生效。运行以下命令来检查- PATH设置是否正确::- printenv PATH - 检查字符串的开头是否包含类似的工具链路径: - $ printenv PATH /home/user-name/esp/xtensa-esp32-elf/bin:/home/user-name/bin:/home/user-name/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin 除了 ``/home/user-name``,应该有具体的安装的主路径。 
权限问题 /dev/ttyUSB0¶
使用某些 Linux 版本向 ESP32 烧写固件时,可能会出现 Failed to open port /dev/ttyUSB0 错误消息。此时,可以将当前用户增加至 :ref:` Linux Dialout 组 <linux-dialout-group-cmake>`
Arch Linux 用户¶
在 Arch Linux 中运行预编译的 gdb (xtensa-esp32-elf-gdb) 需要 ncurses 5,但是 Arch 使用的是 ncurses 6。
AUR 中存在向下兼容的库文件,可用于本地和 lib32 的配置:
- https://aur.archlinux.org/packages/ncurses5-compat-libs/
- https://aur.archlinux.org/packages/lib32-ncurses5-compat-libs/
在安装这些软件包之前,你可能需要将作者的公钥添加到你的密钥环中,具体见上方链接中的 “Comments” 部分的介绍。
或者,你也可以使用 crosstool-NG 编译一个链接到 ncurses 6 的 gdb。
后续步骤¶
后续开发环境设置,请参考 获取 ESP-IDF 一节。