STM32CUBEIDE包含STL标题错误
我基于ioc配置文件在STM32CUBEIDE中为STM32G473创建了一个新的C++项目。但是在.cpp文件中包含STL头时,如下所示:#include <functional>编译器出现以下错误:fatal error:functional:No such file or directory其他STL头文件也出现同样错误。怎样能成功导入STL头文件?编译器是否支持C++标准库。 检查编译器选项属性中是否启用了C++标准库支持。 可以尝试手动添加C++标准库的包含路径。 重新创建一个新的STM32C++项目。 更新STM32CubeIDE到最新版本。 你用的是哪种编译器?STM32CubeIDE默认是arm-none-eabi-gcc,不支持完整STL。 嵌入式环境下用STL很难,建议换用更轻量的C++库或者自己写简化版。 STM32G4系列虽然性能强,但GCC的嵌入式版本不带完整libstdc++,所以找不到functional。 你可以试试用arm-none-eabi-g++编译器,同时安装带C++支持的库版本。 STM32CubeIDE里需要配置正确的C++标准库路径,还要开启C++11或以上标准支持。 也可以考虑用第三方嵌入式STL库,比如uSTL或者ETL,专门为嵌入式优化。 如果非要用STL,建议用带完整C++支持的交叉编译环境,比如使用Sourcery CodeBench。 你可以检查一下项目的编译器选项,有没有启用 -std=c++11 或 -stdlib=libc++。 记得在项目属性里把C++标准库和头文件路径手动添加进去。 嵌入式开发常见方案是用裸机加简化版C++,复杂STL不适合资源有限的MCU。 通常是由于编译器配置或工具链设置不正确导致的吧。。
页:
[1]