vscode 头文件包含问题_使用clangd替代c/c++配置vscode c++项目
背景:
最近從Clion切換到了vscode來進行代碼開發,發現vscode自帶的c/c++插件除了能夠使用debug功能,其余代碼補全,跳轉等功能都和基于clangd的clion有較大差距,經常出現匹配不上或者跳轉不準確的問題,在這背景下自己折騰了兩天切換到了基于clangd來配置(事實上vim中的youcompleteme也已經基于clangd來實現c/c++的代碼的補全
配置方法:
首先在vscode的插件商店中搜索clangd,并安裝。
安裝完成后,打開一個已有的工程:
如以下是一個最簡單的項目:
這里使用CMake來配置項目,事實上可能還存在其他比如bazel,scons,make等項目配置工具:
而clangd是基于compile_commands.json文件來完成對項目的解析,并支持代碼補全和跳轉。
這里記錄一下三種生成方式:
1.在CMakeLists.txt文件中添加set(CMAKE_EXPORT_COMPILECOMMANDS ON),之后cd build && cmake .. ,可以發現在build目錄下已經生成了compile_commands.json文件
2.如果是基于make方式來編譯,那么可以先安裝 pip install compiledb,之后在當前目錄下運行(1) compiledb -n make -C build (2) compiledb make -C build 這兩個命令中的其中一個來生成compile_commands.json文件,其中前者不會執行真正的make編譯命令
3.如果是基于其他方式,可以使用https://github.com/rizsotto/Bear 項目中的方式來生成對應的compile_commands.json文件
通過以上方式生成完后compile_commands.json文件后,可以在vscode中對clangd的參數進行配置,可以使用clangd --help來獲取一些有用的參數:下面給出我實際的配置:
其中第一個是指定配置文件所在目錄,第二個是代碼補全的時候完全顯示函數的參數類型,而第三個則是避免clangd自動引入一些函數依賴的頭文件。
在完成以上配置后,就可以愉快的使用clangd進行代碼補全了跳轉了!
可以看出在下圖復雜的工程內部,函數的補全和跳轉支持也是十分精準的!
(已知的issue,在和微軟的c/c++一起工作時,會提示不正常,因此使用clangd時需要完全關閉c/c++的代碼補全等一系列功能,只是將c/c++插件作為debug使用即可)
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的vscode 头文件包含问题_使用clangd替代c/c++配置vscode c++项目的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: BugkuCTF-MISC题blind_
- 下一篇: android面试service,And