|
使用机智云提供的esp8266 ubuntu虚拟机环境编译项目的时候,可能会出现报错/opt/xtensa-lx106-elf/xtensa-lx106-elf/include/stdint.h:18:19: error: missing binary operator before token "(" #if __GNUC_PREREQ (3, 2)
根据报错信息,我们可以定位到具体的库文件看看代码
我们可以找到具体需要宏定义的文件和提示报错的文件
这个宏定义是用于检查gcc版本的是否大于3.2的 我们通过gcc --version可以得知机智云提供的环境的gcc版本是4.8.2 也就是 4.8的版本
既然没有这个宏定义那么我们只要伪造一个宏定义让下面的条件编译执行即可
可以直接到库文件/opt/xtensa-lx106-elf/lib/gcc/xtensa-lx106-elf/4.8.2/include下修改stdint文件 使用vim命令编辑
按图中的位置加入图中的定义语句
这样定义后,无论gcc是什么版本都可以返回1,那么这个条件编译是一直成立的
wq、保存退出,再次编译机智云下载的8266 soc固件看看
成功生成固件
|
|