五、windows上vscode构建c/c++环境

1、安装vscode

官网下载界面:https://code.visualstudio.com/Download

  • 请根据电脑系统安装所需版本点击下载链接(一般情况下点击windows按钮即可)
  • 鼠标左键双击,即可运行安装程序,点击【确认】;
  • 选择安装路径;
  • 创建桌面快捷方式;
  • 添加安装路径到系统环境变量;
  • 等待安装完成即可。

2、安装插件

  • 打开vscode,快捷键Ctrl+Shift+X进入插件市场安装插件
  • C/C++
  • clangd
  • Cmake、Cmake Tools
  • Doxygen
  • GBKtoUTF8

2.1 Cmake配置

快捷键Ctrl+,快速打开vscode设置界面,点击右上方【Open Settings (UI)】进入settings.json全局默认配置文件,添加如下设置

    "cmake.pinnedCommands": [

        "workbench.action.tasks.configureTaskRunner",

        "workbench.action.tasks.runTask"

    ],

    // 配置cmake3.31.0路径window系统

    // "cmake.cmakePath": "D:\\Program Files\\CMake\\bin\\cmake.exe",

    "cmake.showOptionsMovedNotification": false,

    "cmake.showConfigureWithDebuggerNotification": false,

    // 配置 CMake 构建目录

    "cmake.buildDirectory": "${workspaceFolder}/build",

    // 配置 CMake 构建环境变量,使其生成编译命令数据库相当于

    // CMakeLists.txt文件里set(CMAKE_EXPORT_COMPILE_COMMANDS ON)

    "cmake.buildEnvironment": {

        "CMAKE_EXPORT_COMPILE_COMMANDS": "ON"

    },

2.2、配置clangd

"clangd.arguments": [

        "--background-index",

        "--log=verbose",

        "--clang-tidy",

        // window配置

        "--query-driver=D:/Program Files/LLVM/bin/bin/clang++",

        // "--query-driver=/usr/bin/gcc,/usr/bin/g++",

        "--compile-commands-dir=${workspaceFolder}",

        "--header-insertion=never",

        "--all-scopes-completion",

        "--function-arg-placeholders",

        "--pretty"

    ],

 // clangd头文件,系统文件查询

    "clangd.fallbackFlags": [

        "-ID:/Program Files/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++",

        "-ID:/Program Files/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/x86_64-w64-mingw32"

    ],

4、c/c++项目配置

在当前工作区创建.vscode文件夹并新建c_cpp_properties.json和settings.json配置文件

4.1.c_cpp_properties.json配置

{

    "configurations": [

        {

            "name": "Win32",

            "includePath": [

                "${workspaceFolder}/**",

                "D:/Program Files/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++",

                "D:/Program Files/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/x86_64-w64-mingw32",

                "D:/Program Files/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/backward",

                "D:/Program Files/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include",

                "D:/Program Files/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include-fixed",

                "D:/Program Files/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/include"

            ],

            "defines": [

                "_DEBUG",

                "UNICODE",

                "_UNICODE"

            ],

            "windowsSdkVersion": "10.0.17763.0",

            "compilerPath": "D:/Program Files/mingw64/bin/g++.exe",

            "cStandard": "c17",

            "cppStandard": "c++17",

            "intelliSenseMode": "gcc-x64"

        }

    ],

    "version": 4

}

注意【选项】MinGW-w64获取头文件路径方式:按快捷键Win+R,输入cmd回车,gcc -v -E -x c++ -,如下图示。

4.2 settings.json配置

{

    "cmake.cmakePath": "D:\\Program Files\\CMake\\bin\\cmake.exe",

    "clangd.path": "D:\\Program Files\\LLVM\\bin\\clangd.exe",

}

上述主要配置cmake和clangd在windows的安装路径 。

 4.3 .clangd文件配置

当前工作区新建.clangd文件,具体配置如下:

CompileFlags:                             
    Add: 
      [
        -Xclang,
        -Wno-unused-variable, #移除未使用的变量警告
        -ID:\\Program Files\\mingw64\\x86_64-w64-mingw32\\include,
      ]

4.4 CMakeLists.txt配置

具体配置如下:

cmake_minimum_required(VERSION 3.10)

project(my VERSION 1.0)

set(CMAKE_C_STANDARD 17)

set(CMAKE_CXX_STANDARD 20)

set(CMAKE_CXX_STANDARD_REQUIRED ON)

include_directories(

    ${PROJECT_SOURCE_DIR}/include

)

add_library(hellworld src/helloworld.c)

add_executable(MyExecutable src/main.c)

target_link_libraries(MyExecutable hellworld)

5、总结

根据上述的步骤,即可完成C/C++在vscode上进行开发。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/940144.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Spring实例化的基本流程和Bean处理器

目录 Spring实例化的基本流程 Bean的处理器 Bean工厂后处理器(BeanFactoryPostProcessor) 动态注册beanDefinition Bean后处理器(BeanPostProcessor) Spring实例化的基本流程 在了解处理器之前,要清除spring实例化…

【SH】Ubuntu Server 24搭建Web服务器访问Python程序研发笔记

文章目录 说个问题写个方案一、安装Ubuntu Server二、安装Web服务器采用Nginx服务器 三、安装Python及依赖创建项目虚拟环境 四、安装Python Web框架采用Flask框架创建和运行Flask应用(以后的重点) 五、安装WSGI服务器采用Gunicorn 六、配置Nginx七、验证…

109.【C语言】数据结构之求二叉树的高度

目录 1.知识回顾:高度(也称深度) 2.分析 设计代码框架 返回左右子树高度较大的那个的写法一:if语句 返回左右子树高度较大的那个的写法二:三目操作符 3.代码 4.反思 问题 出问题的代码 改进后的代码 执行结果 1.知识回顾&#xf…

瑞吉外卖项目学习笔记(二)Swagger、logback、表单校验和参数打印功能的实现

瑞吉外卖项目学习笔记(一)准备工作、员工登录功能实现 文章目录 3 项目组件优化3.1 实现Swagger文档输出3.2 实现logback日志打印3.3 实现表单校验功能3.4 实现请求参数和响应参数的打印 3 项目组件优化 3.1 实现Swagger文档输出 1)在application.yml中增加knife4…

OpenEuler 22.03 安装 flink-1.17.2 集群

零:规划 本次计划安装三台OpenEuler 22.03 版本操作系统的服务器,用于搭建 flink 集群。这里使用flink1.17.2 的原因,是便于后续与springboot的整合 服务器名IP地址作用其他应用flink01192.168.159.133主jdk11、flink-1.17.2flink02192.168.…

[数据结构] 链表

目录 1.链表的基本概念 2.链表的实现 -- 节点的构造和链接 节点如何构造? 如何将链表关联起来? 3.链表的方法(功能) 1).display() -- 链表的遍历 2).size() -- 求链表的长度 3).addFirst(int val) -- 头插法 4).addLast(int val) -- 尾插法 5).addIndex -- 在任意位置…

20241220在荣品开发板PRO-RK3566的buildroot下适配gc2093

20241220在荣品开发板PRO-RK3566的buildroot下适配gc2093 2024/12/20 16:00 余顺?PRO-RK3566开发板 挂 gc2093模块。刷 buildroot的预编译固件。 update-pro-rk3566-buildroot-hdmi-20231130-034633.img 1、现在发现 qcamera的 拍照Capture、Record录像模式都是640x480分辨率…

实习冲刺数据库练习-01 基础查询

原题链接:牛客网在线编程_SQL篇_非技术快速入门 数据表示例: 根据数据表示例要求我们完成以下查询: (1)获取用户信息表中所有的数据,请你取出相应结果 (2)获取用户的设备id对应的…

【Mars3d】设置backgroundImage、map.scene.skyBox、backgroundImage来回切换

相关链接: http://mars3d.cn/editor-vue.html?keyex_1_2_1&idmap/other/backgroundImg 实现代码: export function show1() {map.setOptions({scene: {backgroundType: "image",backgroundImage: "url(//data.mars3d.cn/img/busin…

telnet命令检查端口

1、简介 telnet是一种用于远程登录的协议,可以通过telnet客户端连接到远程主机,并在远程主机上执行命令。 2、使用telnet命令检查端口 2.1 进入linux终端 2.2 输入telnet命令 如果没有安装telnet命令,请执行以下命令安装 sudo yum install…

Unity 根据文本宽度自动移动图像位置

游戏中有时候需要变动的显示一个物品的数量,变化的文本宽度不停的变化,这时候需要将物品的icon随着文本的长度而改变位置。 实现思路:使用Content Size Fitter来动态改变内容的大小。 首先建立一个文本组件,添加Content Size Fi…

基于Springboot人口老龄化社区服务与管理平台【附源码】

基于Springboot人口老龄化社区服务与管理平台 效果如下: 系统登陆页面 系统主页面 社区信息页面 社区文件页面 活动报名页面 走访任务管理页面 社区资讯页面 老人信息管理页面 研究背景 随着社会老龄化的加剧,老年人口比例逐渐增加,对老年…

加密数据库在现代企业中的应用实践

以下是对加密数据库在现代企业中的应用实践的详细阐述: 一、加密数据库的应用背景 随着信息技术的飞速发展,现代企业对于数据的安全性和隐私保护要求越来越高。数据库作为存储大量敏感信息的关键设施,其安全性直接关系到企业的商业利益和声誉…

安卓环境配置及打开新项目教程,2024年12月20日最新版

1.去官网下载最新的Android Studio,网址:https://developer.android.com/studio?hlzh-cn 2.下载加速器,注册账号,开启加速器。网址:放在文末。 3.下载安卓代码,项目的路径上不能有中文,特别是…

20241217使用M6000显卡在WIN10下跑whisper来识别中英文字幕

20241217使用M6000显卡在WIN10下跑whisper来识别中英文字幕 2024/12/17 17:21 缘起,最近需要识别法国电影《地下铁》的法语字幕,使用 字幕小工具V1.2【whisper套壳/GUI封装了】 无效。 那就是直接使用最原始的whisper来干了。 当你重装WIN10的时候&#…

sqlite3 支持位运算 和view和 triger

数据设置条件以后可以.根据门限自动调整其他的值 由数据库记录修改时间,及记录-> 网元设备的告警产生时间,设置超时清除时间,记录系统的原始时间戳 CPp 有 sqlite 支持 json 导出字符串,json 库将字符串,映射为结构体 triger update table 更新到一个 可设置参数列表 ,view …

11-C语言结构体(下篇)

一、结构体指针变量 结构体指针变量:本质上是一个指针变量,保存的是结构体变量的地址。 1.结构体变量的地址 结构体变量的地址:对结构体变量名取地址。 代码演示 typedef struct stu {char name[32];int age;float score; }STU;int main…

linux普通用户使用sudo不需要输密码

1.root用户如果没有密码,先给root用户设置密码 sudo passwd root #设置密码 2.修改visudo配置 su #切换到root用户下 sudo visudo #修改visudo配置文件 用户名 ALL(ALL) NOPASSWD: ALL #下图所示处新增一行配置 用户名需要输入自己当前主机的用户名

百度面试手撕 go context channel部分学习

题目 手撕 对无序的切片查询指定数 使用context进行子协程的销毁 并且进行超时处理。 全局变量定义 var (startLoc int64(0) // --- 未处理切片数据起始位置endLoc int64(0) // --- 切片数据右边界 避免越界offset int64(0) // --- 根据切片和协程数量 在主线程 动态设…

任务一登录安全加固

1 (1)、(2) secpol.msc打开本地安全策略 2 (1) DCOM: 在安全描述符定义语言(SDDL)语法中的计算机访问限制 没有定义 DCOM: 在安全描述符定义语言(SDDL)语法中的计算机启动限制 没有定义 Microsoft 网络服…