20年的微软 VScode 用户,在 Windows 一直很方便,在 Macbook 上,要使用 cquery 插件,但是作者停止更新超过五年了,连 GitHub 上的仓库都关了,没了 repo,Apple Silicon 编译不了 cquery。
解决方法是使用 cquery 的一个个人开发的分支 ccls,现在有了一个更加稳定的官方项目,llvm 官方团队的 clangd,基于 Clang C++ Compiler,默认集成到了 llvm 项目中,安装 llvm 后即可使用。
1.安装 llvm。
$ brew install llvm
2.打开 VScode,搜索"clangd"安装 clangd 插件。
3.关闭 VScode 中 C/C++ 插件的智能提示功能。
"C_Cpp.intelliSenseEngine": "Disabled",
4.为工程生成 compile_commands.json 文件,clangd 需要它来分析依赖关系。
使用 CMake 编译时,需要添加参数
$ cmake .. -DCMAKE_EXPORT_COMPILE_COMMANDS=YES
或在 CMakeLists.txt 里,指定生成
set(CMAKE_EXPORT_COMPILE_COMMANDS YES)
生成的 compile_commands.json 文件可能在 build 目录下,这时需要在项目主目录里创建一个该文件的软链
ln -s build/compile_commands.json .
重启 vscode,或者 CMD+Shift+P 输入 Reload Window
VScode也是个传奇了