石榴大王 发表于 2025-6-19 11:30

STM32CUBEIDE包含STL标题错误

我基于ioc配置文件在STM32CUBEIDE中为STM32G473创建了一个新的C++项目。但是在.cpp文件中包含STL头时,如下所示:#include <functional>编译器出现以下错误:fatal error:functional:No such file or directory其他STL头文件也出现同样错误。怎样能成功导入STL头文件?

onlycook 发表于 2025-6-20 16:40

编译器是否支持C++标准库。

flycamelaaa 发表于 2025-6-20 18:41

检查编译器选项属性中是否启用了C++标准库支持。

powerantone 发表于 2025-6-20 19:41

可以尝试手动添加C++标准库的包含路径。

classroom 发表于 2025-6-20 21:43

重新创建一个新的STM32C++项目。

probedog 发表于 2025-6-20 22:42

更新STM32CubeIDE到最新版本。

公羊子丹 发表于 2025-6-24 07:23

你用的是哪种编译器?STM32CubeIDE默认是arm-none-eabi-gcc,不支持完整STL。

周半梅 发表于 2025-6-24 07:24

嵌入式环境下用STL很难,建议换用更轻量的C++库或者自己写简化版。

帛灿灿 发表于 2025-6-24 07:25

STM32G4系列虽然性能强,但GCC的嵌入式版本不带完整libstdc++,所以找不到functional。

童雨竹 发表于 2025-6-24 07:26

你可以试试用arm-none-eabi-g++编译器,同时安装带C++支持的库版本。

万图 发表于 2025-6-24 07:26

STM32CubeIDE里需要配置正确的C++标准库路径,还要开启C++11或以上标准支持。

Wordsworth 发表于 2025-6-24 07:27

也可以考虑用第三方嵌入式STL库,比如uSTL或者ETL,专门为嵌入式优化。

Bblythe 发表于 2025-6-24 07:28

如果非要用STL,建议用带完整C++支持的交叉编译环境,比如使用Sourcery CodeBench。

Pulitzer 发表于 2025-6-24 07:29

你可以检查一下项目的编译器选项,有没有启用 -std=c++11 或 -stdlib=libc++。

Uriah 发表于 2025-6-24 07:30

记得在项目属性里把C++标准库和头文件路径手动添加进去。

Clyde011 发表于 2025-6-24 07:30

嵌入式开发常见方案是用裸机加简化版C++,复杂STL不适合资源有限的MCU。

powerantone 发表于 2025-6-24 10:35

通常是由于编译器配置或工具链设置不正确导致的吧。。
页: [1]
查看完整版本: STM32CUBEIDE包含STL标题错误