C/C++开发环境

VsCode+Clangd+SSH+CMake

安装

  1. Linux上安装Clangd,CMake
  2. 安装VsCode,安装VsCode插件clangd, ssh, CMake

配置

1.VsCode的Clangd插件配置Linux上的Clangd路径。

2.VsCode配置Clangd功能

cpp 复制代码
{
    // clangd 补全 
    "editor.formatOnPaste": true,
    "editor.formatOnType": true,
    "C_Cpp.errorSquiggles": "Disabled",
    "C_Cpp.intelliSenseEngineFallback": "Disabled",
    "C_Cpp.intelliSenseEngine": "Disabled",
    "clangd.path": "/usr/bin/clangd",
    "clangd.arguments": [
        "--compile-commands-dir=${workspaceFolder}/build",
        "--query-driver=/home/ljx/workspace/tools/xxx/bin/*",
        "--enable-config",
        "--log=verbose",
        "--pretty",
        "--all-scopes-completion",
        "--completion-style=bundled",
        "--cross-file-rename",
        "--header-insertion=iwyu",
        "--header-insertion-decorators",
        "--background-index",
        "--clang-tidy",
        "-j=2",
        "--pch-storage=disk",
        "--function-arg-placeholders=false",
        "--compile-commands-dir=build"
    ],

    "clangd.fallbackFlags": [
        "-pedantic",
        "-Wall",
        "-Wextra",
        "-Wcast-align",
        "-Wdouble-promotion",
        "-Wformat=2",
        "-Wimplicit-fallthrough",
        "-Wmisleading-indentation",
        "-Wnon-virtual-dtor",
        "-Wnull-dereference",
        "-Wold-style-cast",
        "-Woverloaded-virtual",
        "-Wpedantic",
        "-Wshadow",
        "-Wunused",
        "-pthread",
        "-fuse-ld=lld",
        "-fsanitize=address",
        "-fsanitize=undefined",
        "-stdlib=libc++",
        "-std=c++17"
    ],
}

3.Linux上 ~/config/clangd/config.yaml配置忽略语法

bash 复制代码
CompileFlags:
  Add: -Wno-unknown-warning-option
  Remove: [-march=*, -mabi=*, -f*, -V*, ]

Diagnostics:
  Suppress: ['drv_unknown_argument', 'unused-includes', 'pp_file_not_found', 'drv_unsupported_opt', ]
  

4.CMake添加生成COMPILE_COMMANDS文件

cpp 复制代码
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)

或者编译时添加配置

相关推荐
小灰灰搞电子2 小时前
Python 函数参数分隔符 *:Keyword-Only Arguments 原理与实践
开发语言·python
染的人2 小时前
Java 10x15cm面单PDF转换A4格式PDF
java·开发语言·pdf
光电笑映3 小时前
Linux 线程同步与互斥:锁的本质、条件变量与信号量的底层原理
linux·运维·服务器·开发语言·c++
Json____3 小时前
从零构建在线拍卖系统:Java 全栈开发实践
java·开发语言·管理系统·it学习·wwwoop.com
jearry3 小时前
WebView2 原生拖放的桥接之道:拆解 yyzTools 的 drop-zone.js
前端·c++
2601_966949653 小时前
批量 K 线不只是提速:因子研究中的数据质量、复权与回测偏差
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
matlab代码3 小时前
基于matlab水果识别系统(西红柿、香蕉、梨、青椒)【源码64期】
开发语言·matlab
王的宝库3 小时前
Gin + GORM
开发语言·golang·gin
零基础的修炼3 小时前
CUDA知识汇总
开发语言·c++·编辑器
妙码生花3 小时前
golang 应用服务端部署(使用 systemd 服务)
开发语言·人工智能·后端·golang·node.js·php·gin