编译遇到的问题
错误没有fatfs组件
1 | fatal error: esp_vfs_fat.h: No such file or directory |
原因
缺少fatfs组件
解决办法
在组件内部添加fatfs,例如
1 | set(COMPONENT_REQUIRES |
ccache错误,libsodium库报poly1305.c.obj类文件找不到
1 | error: Failed to create temporary file for esp-idf/libsodium/CMakeFiles/__idf_libsodium.dir/libsodium/src/libsodium/crypto_aead/chacha20poly1305/sodium/aead_chacha20poly1305.c.obj: No such file or directory |
原因
在Windows上编译libsodioum时会出现此问题:
1.ESP-IDF工具(.espressif)的路径超过90个字符。
2.ESP-IDF的路径长度超过90个字符。
3.工程路径超过90个字符。
这似乎是ESP-IDF中较旧版本的CCache中的错误。
解决办法
1.尽量不要去clean或者menuconfig
2.重命名文件夹名
3.删除缓存文件
错误内容含有ccache,而esp-idf编译环境又用到ccache编译缓存工具【见.espressif/tools/ccache】
ccache的功效,每次编译新建项目,都会在默认的ccache目录【C:\Users\Administrator\AppData\Roaming.ccache】创建对应的缓存记录,而重新编译会从该记录拿出用到的obj对象文件出来,因此如果删除该ccache目录下的所有文件,然后回到项目目录,重新编译。
4.乐鑫官方方法使用如下禁止ccache的方法编译
1 idf.py --no-ccache build
5.采用新版本idf
坏环境(idf4.0)
1 | can't open file 'E:\\tools\\idf.py': [Errno 2] No such file or directory |
原因
在build时Ctrl+C打断
解决方法
进入espidf的环境重新运行install.bat