VSCode C/C++IntelliSense标识符未定义,但可以解析定义

VSCode C/C++ IntelliSense identifier undefined, but can resolve definition

本文关键字:可以解 定义 未定义 C++IntelliSense 标识符 VSCode      更新时间:2023-10-16

VSCode的新安装。我安装的唯一扩展是Microsoft C/C++Intellisense插件。版本0.24.1

我正在使用一个代码库,它有一些带有#define X foo宏的头文件。在.cpp文件中,它用红色在这些文件下面加下划线,并表示"标识符X未定义"。但是,如果按住ctrl键并单击/F12,则会转到定义了宏的.h文件。

这是我现在唯一的扩展,所以我不认为这是插件竞争的问题。对于具有多个定义的宏来说,这似乎很常见。即我们有

chipset1/include/registers.h

chipset2/include/registers.h

其可能都是CCD_ 3或类似的。但是,我的.vscode/c_cpp_properties.json文件中只有"${workspaceFolder}/chipset1/include"。所以我不知道为什么它也在搜索芯片集2的定义。也许这就是问题的原因,错误信息具有误导性,真的应该说"找到了多个定义"之类的话吗?仍然不确定为什么会发生这种行为。

替换c_cpp_properties.json中的此行:"configurationProvider":"msvscode.cmake-tools;

与:"configurationProvider":"msvscode.cptools工具">