-
-
Notifications
You must be signed in to change notification settings - Fork 100
Description
本人在使用vscode的eide插件配合stm32cubeide进行开发,并希望在项目中引入C++语言的标准库
在通过eide引入cproject以后,若是include C++的标准库头文件就会报错:
基于 configurationProvider 设置提供的信息检测到 #include 错误。
和
无法打开 源 文件 "bits/c++config.h" (dependency of "map")C/C++(1696)
在有些时候会只有第二个错误,并且引发该错误的操作室我引入了#include
且经过尝试,引入其他标准库文件也会报错。
在项目中,我有引入用于C与C++混合开发的相关预处理,如_cppplusplus和extern "C"等。
该报错会直接影响在vscode下相关的代码补全,影响开发体验和效率。
但是即便如此,头文件是可以F12进去的,并且引入了C++标准库的代码也可以在eide和stm32cubeide环境下进行成功的编译和烧录。
eide的说明书有说:不要手动 新建,编写 c_cpp_properties.json 文件
所以在setting.json文件中,我已经注释了所有C_cpp相关的配置
曾有一个解决方案提到如此配置setting.json
"C_Cpp.default.configurationProvider": "ms-vscode.cmake-tools"
这虽然可以解决头文件的问题,但是会引入新的问题,如在C++环境下的hal库调用皆会冒红,所以该解决方案大体不可用。
现在似乎能用的办法就是禁用错误波浪线,并引入configurationProvider的json配置,但是屏蔽错误总归是一件不安全的事,所以我想请问有没有什么办法能解决这个问题?
如果能使用C++的相关语法以及标准库来加入嵌入式开发会大大的提高效率,而且vsc的代码补全更好用,我实在不想放弃这个功能。