解决Arduino便携版添加esp8266开发板,头文件bits/c++config.h缺失-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2386|回复: 0

解决Arduino便携版添加esp8266开发板,头文件bits/c++config.h缺失

[复制链接]
发表于 2021-5-25 13:03 | 显示全部楼层 |阅读模式
安装的便携版Arduino,添加esp8266开发板后,编译时出现如下报错:
d:\arduino-portable\1.8.15\portable\packages\esp8266\tools\xtensa-lx106-elf-gcc\3.0.0-newlib4.0.0-gnu23-48f7b08\xtensa-lx106-elf\include\c++\10.2.0\cstdlib:41:10:fatal error: bits/c++config.h: No such file or directory
   41 | #include <bits/c++config.h>
      |         ^~~~~~~~~~~~~~~~~~
compilationterminated.
所有版本:Arduino IDE 1.8.15 portable  +  esp8266 3.0.0

也不知其他人有没有遇到该问题? 有可能是因为我使用的便携版。经过几番摸索定位到问题原因,在此分享下,希望能帮助到,节省到他人的时间。

问题分析:
头文件找不到,一般就是头文件所在的目录没有加到编译配置中。
找到esp8266的安装位置,上述报错已经透露了其安装位置。而且,根据官方文档,它一定在portable目录下。

顺便一下portable文件夹,在往后的arduino中所有sketches,库和其他cores将安装在portable中。可以复制整个主文件夹,并将其随身携带到任何位置:它将保留所有设置,库,cores和sketches。

找到其platform.txt, 这个文件里定义了编译步骤,以及编译使用的编译选项。我的位于:portable\packages\esp8266\hardware\esp8266\3.0.0\
部分内容展示见附件。

注意到该平台使用的编译器:xtensa-lx106-elf-g++
其头文件搜索目录添加的很少(使用-I),大多数在include下,最关键的是这个:portable\packages\esp8266\tools\xtensa-lx106-elf-gcc\3.0.0-newlib4.0.0-gnu23-48f7b08\xtensa-lx106-elf\include,该目录下正好有个bits目录,但是空的。

而报错的bits/c++config.h文件位于和bits同级的c++目录内,具体是:c++\10.2.0\xtensa-lx106-elf\bits\c++config.h,这目录显然是编译器找不到的。可以确定该platform.txt配置的有问题,也可能是编译器版本和项目版本不匹配导致的。

权宜之计:
将portable\packages\esp8266\tools\xtensa-lx106-elf-gcc\3.0.0-newlib4.0.0-gnu23-48f7b08\xtensa-lx106-elf\include\c++\10.2.0\xtensa-lx106-elf\bits中的头文件拷贝到portable\packages\esp8266\tools\xtensa-lx106-elf-gcc\3.0.0-newlib4.0.0-gnu23-48f7b08\xtensa-lx106-elf\include\bits。
另外,还有个c++\10.2.0\bits目录,虽然其也是头文件搜索目录,但尝试把c++\10.2.0\xtensa-lx106-elf\bits中的头文件拷贝进去后,引发了新的问题。

值得说明的是,这个解决办法虽然奏效,但显然有些暴力,是不得已而为之的。希望该项目的开发者在将来的版本中能尽快修复这个问题,免得如此大费周章。

platform.txt部分内容

platform.txt部分内容
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 08:50 , Processed in 0.089989 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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