问题描述
clangd+VSCode在写C/C++时,能够编译运行,但是代码显示红色下划线iostream file not found clang(pp_file_not_found)。
Windows中clangd+VSCode+MSVC配置后,找不到MSVC的库。
使用clangd插件做C/C++代码提示,就会出现iostream file not found clang(pp_file_not_found)。
我上网搜了好多次,都没找到优雅的解决方式,今天根据这个网页,我觉得算是比较优雅的解决了这个问题。
产生原因
clangd默认不会主动搜索寻找MSVC的库,所以需要手动给clangd添加配置文件,配置这个路径。
主要解决思路有两个:
一个是全局解决,即clangd配置文件中添加这个路径;
一个是每个项目单独解决,即每个项目的CMakeLists.txt文件中添加include_directories(MSVC的默认库路径)(使用cmake情况下)
解决办法
方案一(优雅一点)
专门给clangd配置config文件(理论上这个配置写在vscode的clangd插件配置参数中也可以,但是我试了几次,都不行,我就放弃在vscode的配置文件中弄了,转而直接给clangd配置)。
Windows: %LocalAppData%\clangd\config.yaml
MacOS: ~/Library/Preferences/clangd/config.yaml
Linux: ~/.config/clangd/config.yaml
假如我的VS安装路径是D:\Program Files\Microsoft Visual Studio,这时候要找到对应iostream文件路径D:\Program Files\Microsoft Visual Studio\版本\Community\VC\Tools\MSVC\版本信息\include,
所以解决这个问题的文件 %LocalAppData%\clangd\config.yaml内容:
CompileFlags:
Add:
- "-ID:\Program Files\Microsoft Visual Studio\版本\Community\VC\Tools\MSVC\版本信息\include"
这个配置文件还可以配置很多东西,
具体参考这个clangd官方网页
方案二(灵活一点)
在CMakeLists.txt中添加这个目录,这样每个项目都要在CMakeLists.txt中这样写一下。
cmake_minimum_required(VERSION 3.27)
project(project)
include_directories("D:/Program Files/Microsoft Visual Studio/版本/Community/VC/Tools/MSVC/版本信息/include")
本文讲述了在Windows上使用clangd与VSCode配合时遇到iostream库找不到的问题,提供了解决方案:一是全局配置clangd,二是每个项目单独在CMakeLists.txt中添加包含目录。作者推荐了创建config.yaml文件进行全局配置的方法。



1万+

被折叠的 条评论
为什么被折叠?



