【VSCode】【msys2】VS Code + msys2配置Windows下C/C++开发环境_vscode msys-程序员宅基地

技术标签: C++  # VSCode  c语言  vscode  windows  

【VSCode】【msys2】VS Code + msys2配置Windows下C/C++开发环境

一、Msys2配置

1. 下载msys2, 网址:https://www.msys2.org/

2. 安装msys2-x86_64-xxxx.exe

这里没什难度,记住安装路径就好,一路next就装好了。

3. 安装gcc

3.1. 更新msys2
> pacman -Sy
3.2. 安装gcc
> pacman -Su gcc

出现"Proceed with installation? [Y/n]" 输入y回车就行。

同样的方法可以安装cmake,不赘述。

3.3. 测试
> gcc -v

输出gcc版本信息就时安装成功

二、下载安装VSCode

1. 下载安装VSCode,网址:https://code.visualstudio.com/

安装VSCode,勾选 ”将通过vscode打开操作添加到windows资源管理器目录上下文菜单“

2. 打开VSCode,安装c++插件,选第一个就行,其他的按需安装。

在这里插入图片描述

三、配置开发环境

1. 创建一个开发目录,如cpptest, 右键用vscode打开。

2. 新建一个code文件,hello.c

3. 输入代码

#include<stdio.h>

int main()
{
    
    printf("hello world\n");

    return 0;
}    

4. 在VSCode控制台中编译运行

4.1 输入gcc hello.c
> gcc hello.c
4.2 输入a.exe看到输出结果 hello world
> a.exe
> hello world 

5. 这时候鼠标右键打开stdio.h文件时,会发现这个文件竟然时Visual Studio下的,不是gcc下的。

在这里插入图片描述

原因是VSCode做代码分析的时候不知道gcc,选择了MSVC,添加配置文件把编译器改为gcc.

细节参考vscode官网:Get Started with C++ and Mingw-w64 in Visual Studio Code.

在.vscode目录下新建一个json文件:c_cpp_properties.json,注意includePath和compilerPath要指定到msys2安装目录下。

// .vscode/c_cpp_properties.json
{
    
    "configurations": [
      {
    
        "name": "GCC",
        "includePath": [
            "C:/ProgramFiles/msys64/usr/include",
            "${workspaceFolder}/**"
        ],
        "defines": ["_DEBUG", "UNICODE", "_UNICODE"],
        "compilerPath": "C:/ProgramFiles/msys64/usr/bin/gcc.exe",
        "cStandard": "c17",
        "cppStandard": "c++17",
        "intelliSenseMode": "linux-gcc-x64"
      }
    ],
    "version": 4
}

在这里插入图片描述

这时候鼠标右键打开stdio.h文件时,就是是gcc下的。

Last But Not Least

还有个问题,就是VSCode显示#include <stdio.h>这一行有错,鼠标移上去显式找不到依赖文件stddef.h
在这里插入图片描述

用everything找一下发现stddef.h在另一个目录下
在这里插入图片描述

把这个目录也添加到c_cpp_properties.json的includePath中,问题解决。
在这里插入图片描述
在这里插入图片描述

C++还需要添加

 "C:/ProgramFiles/msys64/usr/lib/gcc/x86_64-pc-msys/11.2.0/include/c++", 
 "C:/ProgramFiles/msys64/usr/lib/gcc/x86_64-pc-msys/11.2.0/include/c++/x86_64-pc-msys",

愉快的coding!

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_43331089/article/details/127910399

智能推荐

spring整合junit-程序员宅基地

文章浏览阅读97次。

认知-观察力:观察力-程序员宅基地

文章浏览阅读618次。ylbtech-认知-观察力:观察力观察力(observation ability),汉语词汇,是指大脑对事物的观察能力,如通过观察发现新奇的事物等,在观察过程对声音、气味、温度等事物有一个新的认识。1.返回顶部 1、中文名:观察力外文名:observation ability属性:指大脑对事物的观察能力,认识:对..._认知过程观察力

Python与Pytorch系列(一) 本文(2万字) | 解析python中的pandas.read_csv() | pandas.read_json() | pandas.read_excel()_pytorch中的pandas.read_csv-程序员宅基地

文章浏览阅读981次,点赞26次,收藏21次。官方网站pandas是一个Python包,并且它提供快速,灵活和富有表现力的数据结构。这样当我们处理"关系"或"标记"的数据(一维和二维数据结构)时既容易又直观。pandas是我们运用Python进行实际、真实数据分析的基础,同时它是建立在NumPy之上的。pandas.csv() 函数将逗号分离的值 (csv) 文件读入数据框架。还支持可选地将文件读入块或将其分解。源文件。_pytorch中的pandas.read_csv

2D医学图像分割大模型:SAM-Med2D-程序员宅基地

文章浏览阅读2.1k次,点赞21次,收藏29次。[_sam-med2d

深圳Java培训:Javaweb现在流行用什么框架?_深圳流行开发框架-程序员宅基地

文章浏览阅读126次。深圳Java培训:Javaweb现在流行用什么框架?Java是开源的,框架很多,这些框架都能解决特定的问题,提高开发效率、简化我们的代码复杂度,现在除了很多大家通用的一些主流框架外,很多公司针对自己的业务会自定义一些公司内部的框架,当然作为学习者我们首先要清楚Javaweb都有哪些框架需要学习。回答这个问题首先要看我们的项目规模,对于”体量”较小的单应用项目,和需要处理海量数据、高并发的分布式..._深圳流行开发框架

云卷云舒_云卷云舒任逍遥 博客-程序员宅基地

文章浏览阅读107次。_云卷云舒任逍遥 博客

随便推点

DCMM-数据管理能力成熟度相关标准介绍_dcmm445个评价指标是什么-程序员宅基地

文章浏览阅读4.2k次。由于大数据是相对较新的行业,现阶段大数据相关理论的发展相对滞后,特别是数据治理相关的理论。目前国内各家单位更多是采用国际咨询公司的理论框架或者国际数据管理协会的数据管理知识体系作为引导,但是这些理论基本没有考虑国内数据行业发展的现状和特性,且普及程度也有待提高,导致目前国内很多公司在数据管理方面的意识薄弱,管理方式各异,发展相对落后。在这个背景下,由中国电子技术标准化研究院牵头制定了大数据重点标准《数据管理能力成熟度评估模型》(Data Management Capability Maturity ..._dcmm445个评价指标是什么

html如何设置下拉列表_html下拉列表怎么设置-程序员宅基地

文章浏览阅读2.3w次,点赞14次,收藏110次。一.html中的下拉列表介绍可以用许多方法完成下拉列表的功能。介绍在htlm中下拉列表的实现,html中下拉列表由select和option这两个表单标签一起使用来完成下拉功能的。代码:<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>e易行</title> </head> <body style="text-align_html下拉列表怎么设置

RSA的运用和前后端签名的一些看法_rsa puk pvk-程序员宅基地

文章浏览阅读1.1k次。RSA的运用和前后端签名的一些看法RSA在验签过程的使用场景分析不按照上述方式验签会造成的问题日常前后端交互简化版的RSA应用分析RSA在验签过程的使用场景分析 RSA的文章有很多。原理性学术性的对于我这样普通的码农毫无意义,对于我来说,我只想知道为什么我们要用RSA,以及什么 情况下我们需要使用它?这是一篇粗浅且迅速入门的文章。首先,我要介绍RSA验签的流程,稍后再分析为啥要这样做。..._rsa puk pvk

SpringMVC ajax请求参数为json时注意事项_ajax json请求对参数有要求吗-程序员宅基地

文章浏览阅读230次。SpringMVC Ajax请求参数为json时的几个注意事项如果请求参数为json,请求时必须加上contentType:‘application/json;charset=UTF-8’① data写成标准json字符串格式*’{’‘name:“tom”,“age”:39}’*,key必须加引号,单引号/双引号均可,但必须得加,大括号外边也必须加上引号否则会报错,控制台会报错,报错如下警告 [http-nio-8082-exec-12] org.springframework.web.ser_ajax json请求对参数有要求吗

php数组函数-程序员宅基地

文章浏览阅读130次。数组函数一、数组操作的基本函数数组的键名和值array_values($arr); 获得数组的值array_keys($arr); 获得数组的键名array_flip($arr); 数组中的值与键名互换(如果有重复前面的会被后面的覆盖)in_array("apple",$arr); 在数组中检索applearray_search("apple",$arr); 在数组中检索apple ,如...

MySQL远程操作记录删除_mysql 远程访问-程序员宅基地

文章浏览阅读341次。1、改表法。可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"mysql-uroot-pvmwaremysql>usemysql;mysql>updateusersethost='%'w...