基于VS Code和clangd+CMake搭建C/C++开发环境

非学无以广才,非志无以成学。

一、目的

本文主要介绍在windows平台上使用WSL环境,基于LLVM工具链结合clangd代码分析,配置C/C++开发环境,在 VScode 上使用 clang 编译 、LLDB 调试和clangd自动补全可以提高编程效率。本文记录了笔者使用VS Code开发的配置环境,供大家参考。

二、WSL环境

在windows下建议安装WSL环境,可以自行google,安装比较简单的。 笔者使用WSL的ArchLinux系统。如何安装WSL+ArchLinux这里不赘述,可参考链接。
Win10平台安装WSL方法
ArchWSL下载与配置

三、VS Code插件配置

  1. 在本地安装Remote - WSL插件连接ArchLinux系统
    WSL插件

  2. vscode连接ARCH后,在WSL:ARCH环境安装clangd、CodeLLDB、CMake、CMake Tools、Doxygen Documentation Generator插件。
    在这里插入图片描述

  3. 注意在安装CodeLLDB的时候会报错,vscode会跳出链接,手动下载codelldb-x86_64-linux.vsix。在vscode调出命令窗口安装codelldb,windows平台快捷键ctrl+shift+p,选择Extensions: install from VSIX,选择刚刚下载的codelldb-x86_64-linux.vsix进行安装。

三、单文件项目编译与调试

  1. 首先创建launch.json文件,在工程目录下会出现.vscode文件夹,脚本内容如下,具体代码变量含义可以参考Variables Reference
{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "lldb",
            "request": "launch",
            "name": "Debug",
            "program": "${workspaceFolder}/build/${fileBasenameNoExtension}",
            "args": [],
            "cwd": "${workspaceFolder}",
            "preLaunchTask": "Build C++",
            "internalConsoleOptions": "neverOpen",
            "console": "integratedTerminal"
        }
    ]
}
  1. Ctrl+shift+p调出命令窗口选择Tasks: Configure Task,.vscode文件夹生产task.json文件,输入如下内容。
{
    "version": "2.0.0",
    "tasks": [
      {
        "type": "shell",
        "label": "Build C++",
        "command": "clang",
        "args": [
          "--std=c++20",
          "-g",
          "-Wall",
          "-o",
          "${workspaceFolder}/build/${fileBasenameNoExtension}",
          "${file}"
        ],
        "group": {
          "kind": "build",
          "isDefault": true
        },
        "detail": "Task generated by Debugger."
      }
    ]
}
  1. 注意在工程目录下创建一个build目录,之后便可以运行debug。

在这里插入图片描述

四、CMake环境配置

  1. ARCH系统安装CMake、Ninja(或make)
sudo pacman -S cmake
sudo pacman -S ninja
  1. CMakelists.txt配置,这里给出一个简单的示例
project(test)
cmake_minimum_required(VERSION 3.15.0)

set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_EXTENSIONS OFF)

add_executable(${CMAKE_PROJECT_NAME} test.cpp)
  1. 调出控制命令,输入CMake: Configure,笔者使用的是Clang-13工具链,配置好后build
  2. CMake配置后不需要tasks.json文件,修改launch.json的“program”,删除““preLaunchTask”: “Build C++”, ”,参考CMake-Tools
  3. 点击vscode下面状态栏的all,选择当前要debug的项目,快捷键F5启动debug

五、代码整理:Clang-Format

  1. 在工程目录下创建一个.clang-format文件,具体配置可以参考clang-format
  2. 这里提供一个示例
BasedOnStyle: Microsoft
UseTab: Never
IndentWidth: 4
DerivePointerAlignment: false
PointerAlignment: true
AlwaysBreakAfterReturnType: None
AlwaysBreakTemplateDeclarations: true
AlwaysBreakBeforeMultilineStrings: true
AlignOperands: true
AlignAfterOpenBracket: true
AlignConsecutiveBitFields: true
AlignConsecutiveMacros: true
ConstructorInitializerAllOnOneLineOrOnePerLine: true
AllowAllConstructorInitializersOnNextLine: false
BinPackArguments: false
BinPackParameters: false
IncludeBlocks: Regroup

总结

以上就是今天要讲的内容,本文仅仅简单介绍了VS Code结合clangd+CMake的使用,欢迎留言讨论。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值