在 rtthread studio 中,使用 C++ 的标准库里,会出现报错,fatal error: bits/c++config.h: No such file or directory
。
这是因为其 bits/c++config.h
并不是和其标准库文件放在同一相对位置内。
那么我们试看下其标准库的目录结构。
首先找到,RT-Thread Studio 的安装目录,然后找到其工具链的位置。
${studio_folder}/repo/Extract/ToolChain_Support_Packages/ARM/GNU_Tools_for_ARM_Embedded_Processors/5.4.1/arm-none-eabi
明显,studio 使用的是 arm-gcc 工具链。接下来,我们找到 C++ 的标准库目录。
./include/c++/5.4.1
这里面放的是标准库文件。很容易看到里面存在一个 bits
文件夹。但可惜的是里面没有 c++config.h
这个头文件。
不要气馁,我们再找下,发现里面有个文件夹,名字叫做 arm-none-eabi
。居然含有 bits
,而且还真在里面找到这个缺失的文件。
========================== 解决方法 ==========================
打开构建配置
然后在 C++ 的 Include
下加入这个搜索路径。
========================== 疑惑 ==========================
我对比过 mingw64 下的 gcc 结构,和 arm-gcc 一样,把这类文件放到一个 x86* 的目录下。猜其应是也 CPU 的架构有关,换言之,就是把标准库里非跨平台的部分放在这。
但问题是使用 mingw 时不用额外声明这个搜索路径。
猜测原因是,电脑端的 gcc 固定的运行架构,故相应软件已经默认添加了这个路径。而作为嵌入式的编译器,或许为了处理不同类型架构,所以就交由用户自行声明。