0. 前言
主要是在網上找的方法都沒試成功過,在各種機緣巧合下終於成功了。
這篇文章基於個人經驗,而且沒有走尋常路。
1. 需要的軟件和插件
軟件:
- VSCode (https://code.visualstudio.com/)
- LLVM (http://releases.llvm.org/download.html#9.0.0 選擇Pre-Built Binaries)
為了方便使用,將 llvm 安裝路徑中子文件夾 bin 加入 PATH 環境變量,或者配置插件的時候注意一下 clangd 的路徑
VSCode 插件:
- vscode-clangd (LLVm Extensions)
- CMake Tools (Microsoft)
2. 配置
2.1 配置 clangd
Clangd: Path
填寫clangd的絕對路徑,如果照上文修改了 PATH 變量(有用這個工具鏈的覺悟或者不怕麻煩)可以保持不變。
2.2 修改 CMake Tools 配置
由於clangd的參數:
--compile-commands-dir=<string> - Specify a path to look for compile_commands.json. If path is invalid, clangd will look in the current directory and parent paths of each source file.
要么是絕對路徑,要么從工作目錄開始往上找 compile_commands.json,然而 CMake Tools 默認在項目目錄的 build 子目錄中進行 CMake 的配置,該文件也在子目錄中,這里我選擇修改 CMake Tools 的配置,使得該文件拷貝到項目目錄中(應該也是工作目錄)
CMake: Copy Compile Commands 填寫: ${workspaceFolder}/compile_commands.json
3. 使用功能
首先使用 CMake Tools 配置項目,生成 compile_commands.json
然后clangd下次啟動就應該能找到這個文件,提供語言功能
重啟一下腳本宿主(未驗證)或者重啟一下VSCode
按 Ctrl + Shift + P 然后輸入 restart 應該就能看到
最后,享受語言功能吧:
參考
https://github.com/microsoft/vscode-cmake-tools/issues/654#issuecomment-592983916