ESP32 IDF基于Ubuntu16.04传统GNU make(非cmake)的开发环境搭建

1、概述

关于ESP32 GNU make环境搭建,博主走了很多弯路,为了以后少走弯路特意写这篇文章作为防坑记录。由于之前开发ESP8266是基于Linux平台,所以习惯了传统的GNU make方式,继续按照之前搭建ESP8266编译环境的方式来搭建,这样就可以windows和Linux共享一个工程,方便后续维护开发。至于标题为什么突出GNU make,那是因为要跟cmake 编译环境做区别,详情请看官方链接:https://docs.espressif.com/projects/esp-idf/zh_CN/latest/get-started-legacy/index.html.

ESP32 CMAKE_ubuntu

2、下载安装Ubuntu16.04

ubuntu16.04下载地址:
 中科大源
http://mirrors.ustc.edu.cn/ubuntu-releases/16.04/.
 阿里云开源镜像站
http://mirrors.aliyun.com/ubuntu-releases/16.04/.
 兰州大学开源镜像站
http://mirror.lzu.edu.cn/ubuntu-releases/16.04/.
 北京理工大学开源
http:///ubuntu-releases/16.04/  浙江大学
http://mirrors.zju.edu.cn/ubuntu-releases/16.04/ 特别需要注意的是自己安装的是32-bit还是64-bit,非常重要,只说一遍。
安装好后可以通过 getconf LONG_BIT命令来查看Ubuntu是多少位的。

3.下载安装编译链工具依赖包

命令行安装交叉编译工具链依赖的环境:sudo apt-get install git make gcc libncurses5-dev flex bison gperf python-serial

ESP32 CMAKE_ESP32 CMAKE_02


需要注意的是python依赖包 libnsurses5-dev可能安装不成功,需要手动下载解压执行,。在这个Ubuntu版本,后面还有很多关于python的坑。

4、安装编译链工具

注意:一定要下载跟Ubuntu位数相同的版本;
可以通过

64-bit Linux:

https://dl.espressif.com/dl/xtensa-esp32-elf-linux64-1.22.0-80-g6c4433a-5.2.0.tar.gz.

32-bit Linux:

https://dl.espressif.com/dl/xtensa-esp32-elf-linux32-1.22.0-80-g6c4433a-5.2.0.tar.gz.

下载后使用 cp 命令到自己的目录,使用tar -xzvf xtensa-esp32-elf-linux32-1.22.0-80-g6c4433a-5.2.0.tar.gz解压到当前文件夹,我安装到 /usr/esp_32/bin里面,这个路径关系到全局变量的设置;

ESP32 CMAKE_ubuntu_03

5、设置编译链工具全局变量

使用sudo vi /etc/profile或者sudo vim /etc/profile进入编辑界面,在最上方输入export PATH="$PATH:/usr/esp_32/bin/xtensa-esp32-elf/bin",也就是编译链工具的具体位置路径;
修改完后记得 执行== source /etc/profile==立即生效

6、下载ESP-IDF

可以通过官方下载,然后放到windows共享文件夹里面,这样方便在windows使用虚拟机安装的Ubuntu共享一个文件夹,比较方便。

7、设置ESP-IDF全局变量

同样使用sudo vi /etc/profile或者sudo vim /etc/profile进入编辑界面,在最上方输入export IDF_PATH=/mnt/hgfs/windows_share_esp/esp_32/esp-idf,也就是esp-idf存放的具体位置路径我用的是windows共享文件夹,所以路径是这个

ESP32 CMAKE_ubuntu_04


修改完后记得 执行== source /etc/profile==立即生效

8、安装python软件包

根据官方文档:https://docs.espressif.com/projects/esp-idf/zh_CN/latest/get-started-legacy/index.html.ESP-IDF 所需的 Python 软件包位于 IDF_PATH/requirements.txt 中。您可以运行以下命令进行安装:您可以运行以下命令进行安装:

ESP32 CMAKE_python_05


这一步会遇到很多问题,最常见的就是==“check_python_dependencies”==,这是由于python很多依赖包没有安装,在安装python依赖包的时候,会报错很多红字,有关于

cryptographyopenssl之类的,都是这些依赖包没有安装包,博主还遇到Ubuntu16.04.自带的python2.7 pip版本太久,无法使用的问题,然后通过pip install 也无法跟新到最新版本,无奈之下只得自己从网上下载最新源码解压执行。

所有关于python的错误解决方法:

转载自.

转载自.

转载自.

转载自 .

一般都是依赖包下载失败导致的,大部分通过命令下载可以解决掉;不过博主弄了一天半,掉了太多头发了,当时没有好好保存图片记录,只保存了上面的几个书签;

9、复制esp-idf examples里面的工程到esp-idf目录,编译;