VS Code通过插件配置可以很好的支持C++程序开发,并且不需要消耗太多系统资源(CPU,内存等)。
clangd是用于支持C,C++程序开发的语言服务(language server). 在VS Code中安装该插件,并且在settings.json
中配置:
"clangd.path": "/usr/bin/clangd",
"clangd.arguments": [
"--background-index",
"--compile-commands-dir=build", //compile_command.json相对路径,cmake默认生成在build,自行配置
"-j=12",
"--all-scopes-completion",
"--completion-style=detailed",
"--header-insertion=iwyu",
"--pch-storage=memory",
"--cross-file-rename",
"--enable-config",
"--fallback-style=WebKit",
"--pretty",
"--clang-tidy",
// 网上别人配置clang++,但我这边windows、linux实测不加这行也没啥问题,可能mac可能需要另外加
"--query-driver=clang++",
],
clangd server可以通过compile_commands.json
文件进行索引,实现代码跳转,提示等功能,该文件一般由构建工具生成,常见的构建工具中其生成如下:
cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=1 ..
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
下面以几个热门的C++程序为例,通过VS Code进行源码查看,编辑和编译。
参考官方文档,在ubuntu中的步骤如下:
sudo apt-get install git cmake ccache python3 ninja-build
sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)"
设置使用最新的clang编译器:
export CC=clang-15
export CXX=clang++-15
git clone --recursive git@github.com:ClickHouse/ClickHouse.git
cd ClickHouse
git submodule init
git submodule update
mkdir build
cd build
cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=1 -DCMAKE_LINKER=/usr/bin/lld-15 .. # linker should be lld
ninja