码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • mac vscode 使用 clangd


    C++ 的智能提示 IntelliSense 非常不准,我们可以使用 clangd

    clangd 缺点就是配置繁琐,优点就是跳转和提示代码精准

    开启 clangd 之后会提示你关闭 IntelliSense

    1、安装插件 clangd

    搜索第一个下载多的就是

    2、配置 clangd 可执行程序路径

    clangd 插件依赖 clangd 可执行程序,如果没安装 clangd 可自行百度安装,命令行运行下面命令可以知道自己是否已经安装了 clangd

    下面这个下载 clangd 链接不确定是否能用,仅供参考

    Releases · clangd/clangd · GitHub

    clangd --version

    设置——拓展——clangd

    3、配置 vscode 的 setting.json 文件

    追加

    1. "clangd.arguments": [
    2. "--compile-commands-dir=${workspaceFolder}/build",
    3. "--background-index",
    4. "--clang-tidy",
    5. "--log=verbose",
    6. "--pretty",
    7. "--function-arg-placeholders=true",
    8. "--header-insertion-decorators",
    9. "--header-insertion=never",
    10. "--inlay-hints",
    11. "-j=12"
    12. ]

    这个配置,不同攻略都大同小异,但是我们要关注一个配置项

    --compile-commands-dir=${workspaceFolder}/build

    这个表示 clangd 将会在工作区目录(即左侧资源管理器根目录)的 build 目录(.cache 文件夹应该也会生成到这个目录下,有时候抽风会生成到上级目录,删了 .cache 文件夹就行)下寻找 compile_commands.json,即 (下一章讲这个文件获取方式)

    vscode 工作区/build/compile_commands.json

    4、获取 compile_commands.json 文件

    参考

    C/C++工程生成编译数据库文件compile_commands.json-CSDN博客

    不同的编译方式,使用不同的命令

    拿到 compile_commands.json 后,把该文件放在第3章强调的 build 目录下即可,重启 vs code,(随便打开一个 C 文件)会看到下面栏自动生成索引

    以及左边资源管理器自动生成 .cache 文件夹

    5、特别提示

    clangd 跳转准确的来源是 compile_commands.json 文件,里面记录了各个库函数的编译路径,拿到 compile_commands.json 文件后,需要看看里面的目录是不是有问题

    比如里面有路径

    -I/Users/test/openssl/include/

    务必确保

    /Users/test/openssl/include/

    路径存在且有效,否则影响跳转准确率

    像 cmake 是用 include_directories 指令调整头文件路径的,就需要修改 CMakeLists.txt

    参考文档

    如何配置C/C++补全环境? - 知乎

    vscode配置clangd和clang-format_clangd vscode-CSDN博客

  • 相关阅读:
    多线程&并发篇---第七篇
    【编译原理】手工打造语法分析器
    RocketMQ 顺序消息解析——图解、源码级解析
    触控笔和pencil笔一样吗?平价电容笔推荐
    PHPEXCEL解决行数超过65536不显示问题
    基于android选课系统的设计与实现
    Unknown collation: ‘utf8mb4_0900_ai_ci‘的解决方法
    JAVA一点就到家外卖订餐系统计算机毕业设计Mybatis+系统+数据库+调试部署
    C语言中的指针常量的常量指针
    窗口期即将关闭,谁在跑出车规级AI芯片的创新“超速度”?
  • 原文地址:https://blog.csdn.net/qq_38781075/article/details/134063175
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号