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

news2024/12/21 15:34:53

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上进行开发。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ElasticSearch中的模糊搜索:为什么输入错误还能搜索出来?

引言 在日常搜索中,用户经常会因为拼写错误或输入笔误导致搜索结果不准确。然而,ElasticSearch 提供了一种非常智能的模糊搜索(Fuzzy Search)功能,使得即使关键词输入错误,依然能够返回准确或接近的结果。…

prober.php探针

raw.githubusercontent.com/kmvan/x-prober/master/dist/prober.php

DIY-ESP8266移动PM2.5传感器-带屏幕-APP

本教程将指导您制作一台专业级的空气质量检测仪。这个项目使用经济实惠的ESP8266和PMS5003传感器,配合OLED显示屏,不仅能实时显示PM2.5数值,还能通过手机APP随时查看数据。总成本70元,相比几百的用的便宜,用的心理踏实…

怎么将pdf中的某一个提取出来?介绍几种提取PDF中页面的方法

怎么将pdf中的某一个提取出来?传统上,我们可能通过手动截取屏幕或使用PDF阅读器的复制功能来提取信息,但这种方法往往不够精确,且无法保留原文档的排版和格式。此外,很多时候我们需要提取的内容可能涉及多个页面、多个…

2024微博用户消费趋势报告:七成城市用户更爱用微博

文 | 魏力 发布 | 大力财经 站在岁末回首这一年,在信息浪潮的汹涌翻涌之下,社交媒体平台犹如社会经济的晴雨表,精准地折射出大众生活与消费的万千景象。近日,大力财经看到一份报告,微博发布了《2024微博用户消费趋势…

#渗透测试#漏洞挖掘#红蓝攻防#护网#sql注入介绍06-基于子查询的SQL注入(Subquery-Based SQL Injection)

免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停…

【数据安全】如何保证其安全

数据安全风险 数字经济时代,数据已成为重要的生产要素。智慧城市、智慧政务的建设,正以数据为核心,推动城市管理的智能化和公共服务的优化。然而,公共数据开放共享与隐私保护之间的矛盾日益凸显,如何在确保数据安全的…

武汉市电子信息与通信工程职称公示了

2024年武汉市电子信息与通信工程专业职称公示了,本次公示通过人员有109人。 基本这已经是今年武汉市工程相关职称最后公示了,等待出证即可。 为什么有人好奇,一样的资料,都是业绩、论文等,有的人可以过,有的…

勤研低代码平台:高效数据集成助力企业数字化转型

在数字化转型的浪潮中,企业对高效开发工具的需求日益增长。勤研低代码平台强大的开发能力和灵活的数据集成方案,是企业提升效率、降低成本的理想选择。数据集成作为勤研低代码平台的核心功能之一,为企业提供了高效整合和利用数据的能力&#…

【毕业设计】A079-基于Java的影院订票系统的设计与实现

🙊作者简介:在校研究生,拥有计算机专业的研究生开发团队,分享技术代码帮助学生学习,独立完成自己的网站项目。 代码可以查看项目链接获取⬇️,记得注明来意哦~🌹 赠送计算机毕业设计600个选题ex…

大腾智能受邀出席南京工业软件云工程应用创新中心工业软件生态应用推广大会并领奖

12月18日,南京工业软件云工程应用创新中心工业软件生态应用推广大会在南京江北新区圆满召开。本次大会由南京江北新区管委会主办,南京工业软件云工程应用创新中心、南京江北新区智能制造产业发展管理办公室联合承办,华为云计算技术有限公司支…

EasyPlayer.js播放器Web播放H.265要兼顾哪些方面?

在数字化时代,流媒体技术已经成为信息传播和娱乐消费的重要方式。随着互联网技术的飞速发展和移动设备的普及,流媒体服务正在重塑我们的生活和工作方式。从视频点播、在线直播到音乐流媒体,流媒体技术的广泛应用不仅改变了内容的分发和消费模…

fabric.js

目录 一、在canvas上画简单的图形 二、在canvas上用路径(Path)画不规则图形 三、在canvas上插入图片并设置旋转属性(angle) 四、让元素动起来(animate) 五、图像过滤器(filters)让图片多姿多彩 六、颜色模式(Color)和相互转换(toRgb、toHex) 七、对图形的渐变填充(Gradi…

白话AI大模型(LLM)原理

大模型(例如 GPT-4或类似的深度学习模型)是基于神经网络的系统,用于理解、生成文本、图像或其他数据类型。其工作原理可以分为以下几个核心步骤,我将通过易于理解的例子逐一解释。 1. 神经网络的基本概念 大模型背后有一个非常庞…

基于海思soc的智能产品开发(巧用mcu芯片)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 对于开发车规级嵌入式软件的同学来说,socmcu这样的组合,他们并不陌生。但是传统的工业领域,比如发动机、医疗或…

力扣438-找到字符串中所有字母异位词

力扣438-找到字符串中所有字母异位词 力扣438-找到字符串中所有字母异位词原题地址:https://leetcode.cn/problems/find-all-anagrams-in-a-string/description/ 题目描述: 给定两个字符串 s 和 p,找到 s 中所有 p 的 异位词的子串&#x…

C#代码实现把中文录音文件(.mp3 .wav)转为文本文字内容

我们有一个中文录音文件.mp3格式或者是.wav格式,如果我们想要提取录音文件中的文字内容,我们可以采用以下方法,不需要使用Azure Speech API 密钥注册通过离线的方式实现。 1.首先我们先在NuGet中下载两个包 NAudio 2.2.1、Whisper.net 1.7.3…

数据可视化-2. 条形图

目录 1. 条形图适用场景分析 1.1 比较不同类别的数据 1.2 展示数据分布 1.3 强调特定数据点 1.4 展示时间序列数据的对比 1.5 数据可视化教育 1.6 特定领域的应用 2. 条形图局限性 3. 条形图图代码实现 3.1 Python 源代码 3.2 条形图效果(网页显示&#…

基于Redis的网关鉴权方案与性能优化

文章目录 前言一、微服务鉴权1.1 前端权限检查1.2 后端权限检查1.3 优缺点 二、网关鉴权2.1 接口权限存储至Redis2.2 网关鉴权做匹配 总结 前言 在微服务架构中,如何通过网关鉴权结合Redis缓存提升权限控制的效率与性能。首先,文章对比了两种常见的权限…

Ansible 批量管理华为 CE 交换机

注:本文为 “Ansible 管理华为 CE 交换机” 相关文章合辑。 使用 CloudEngine - Ansible 批量管理华为 CE 交换机 wsf535 IP 属地:贵州 2018.02.05 15:26:05 总体介绍 Ansible 是一个开源的自动化运维工具,AnsibleWorks 成立于 2012 年&a…