V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ifanze
V2EX  ›  C++

问个 vscode 里使用 .clangd 的问题

  •  
  •   ifanze ·
    ifanze · 2021-11-04 14:25:19 +08:00 · 1437 次点击
    这是一个创建于 896 天前的主题,其中的信息可能已经有所发展或是发生改变。

    根据 https://clangd.llvm.org/config ,可以在工程目录中包含 .clangd 文件的方式为 LSP 提供头文件路径信息。但是我工程里的源码可能路径深浅不一,这时就不好配了:

    • 方法 1:工程根路径下放一个 .clangd ,然后用相对路径,那我需要每遇到不同深度的源码,这里都要全部加一遍。
    • 方法 2:工程根路径下放一个 .clangd ,然后用绝对路径,那这样放在别人的环境下就不行了。
    • 方法 3:每个子项目源码目录下都单独放一个 .clangd ,可是目录太多了…

    有更好的解法么?

    2 条回复    2021-11-04 16:53:11 +08:00
    pisc
        1
    pisc  
       2021-11-04 15:10:35 +08:00
    clangd 支持 compile_commands.json ,所以你只要在项目根目录生成一个 compile_commands.json 文件就行了,compile_commands.json 的生成方式你可以查一下,cmake 本身就支持导出这个文件,其他的话,bear 之类的也可以生成,不需要自己整这些东西
    kkocdko
        2
    kkocdko  
       2021-11-04 16:53:11 +08:00 via Android
    我这边用.clangd 总是 5 连崩溃,可能是我用 llvm-mingw 的原因。
    我是直接建一个.vscode/settings.json ,在里头改导入目录啥的,这个可以用相对路径( vscode 展开变量,类似 ${cwd} 这种形式,clangd 那边收到的就是绝对路径了)。可能对你有帮助?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3209 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 00:35 · PVG 08:35 · LAX 17:35 · JFK 20:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.