收藏官网首页
查看: 3437|回复: 0

[经验分享] 解决机智云提供的ubuntu环境编译报错missing binary opera...的问题

106

主题

107

帖子

7264

积分

论坛元老

Rank: 8Rank: 8

积分
7264
跳转到指定楼层
楼主
 楼主| 发表于 2023-8-11 21:57:56 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
注册成为机智云开发者,手机加虚拟设备快速开发
    使用机智云提供的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固件看看

成功生成固件


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

加入Q群 返回顶部

版权与免责声明 © 2006-2024 Gizwits IoT Technology Co., Ltd. ( 粤ICP备11090211号 )

快速回复 返回顶部 返回列表