Visual Studio Code:IntelliSense 停止在 MacOS 中查找核心 c++ 包含内容

Visual Studio Code:IntelliSense 停止在 MacOS 中查找核心 c++ 包含内容

在 OSX Monterey 中,升级 Homebrew 安装的 clang 后,默认 C++ 标头的某些内容出现了问题。

我能够很好地从终端进行编译;如果我使用系统 clang(/usr/bin/clang,它仍然是默认值和的结果which clang),或者如果我使用 Homebrew 的较新的 clang(/usr/local/Cellar/llvm/14.0.6_1/bin/clang),它都可以工作。

但是在 VSCode 中找不到任何默认的 C++ 标头。

例如,如果我#include <iostream>,IntelliSense 会用红色波浪线标出它并且发出抱怨cannot open source file "iostream" C/C++(1696)

我尝试过重启 VSCode 和我的机器,也尝试Reset IntelliSense Database过从命令面板重启。在C_Cpp > System Include Path设置中,我尝试添加/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/;在C_Cpp > Mac Framework Path设置中,我尝试明确添加/System/Library/Frameworks/。但这些都无法解决问题。

升级后,我还遇到了一些问题,即 clang 本身无法找到系统包含,通过重新安装 XCode 开发工具解决了这些问题。

  • 如何调试为什么 IntelliSense 找不到标准标头?
  • 如何修复此问题?

答案1

此问题已修复

  • 升级 XCode(不仅仅是开发工具,而是整个应用程序;由于磁盘空间有限,自动更新已停止),以及

  • 禁用 C++ 扩展然后重新启用它。

升级 XCode 本身并不能解决问题,直到禁用 C++ 然后重新启用它才起作用。我不知道前者是否真的有必要。

重新启动机器并退回 VSCode 本身也还不够。

我不知道为什么有必要切换扩展,但这肯定比卸载并重新安装 VSCode(这是我接下来要尝试的事情)更容易。

相关内容