clangd+MSVC+VSCode配置

本文讲述了在Windows上使用clangd与VSCode配合时遇到iostream库找不到的问题,提供了解决方案:一是全局配置clangd,二是每个项目单独在CMakeLists.txt中添加包含目录。作者推荐了创建config.yaml文件进行全局配置的方法。

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

问题描述

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文件(理论上这个配置写在vscodeclangd插件配置参数中也可以,但是我试了几次,都不行,我就放弃在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")

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值