【VSCode】【msys2】VS Code + msys2配置Windows下C/C++开发环境_msys2 vscode_伐尘的博客-程序员秘密

技术标签: 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

智能推荐

数学建模专栏 | 第十一篇:MATLAB CUMCM真题求解实例二:优化型_什么是运输矩阵_稳定性与频率补偿的博客-程序员秘密

2003 年的 B 题是典型的优化型问题,这道问题的特色是模型容易建立,但求解比较困难。这道题目在求解方面的难点是模型有交叉,所以当时我们的求解策略是分步求解、逐级优化,采用这种策略后,就可以将复杂的优化问题转化为标准的规划模型进行求解了。在 2...

RabbitMQ安装(无坑)_opt与rabbitmq对应版本_乐大师的博客-程序员秘密

安装依赖文件:  yum install gcc glibc-devel make ncurses-devel openssl-devel xmlto.Erlang安装配置  下载安装包,地址http://www.erlang.org/downloads,我选择的是otp_src_18.3.tar.gz。  然后解压文件:[[email protected] rabbitmq]# tar -xzvf otp_src_18.3.tar.gz[[email protected] rabbitm

计算机专业的黑板报,计算机教室黑板报_火小岚的博客-程序员秘密

计算机教室黑板报随着互联网时代的高速发展,电脑逐渐走进每家每户。那么关于电脑的知识你都知道多少呢?下面来看看小编整理的计算机教室吧!计算机教室黑板报计算机教室黑板报内容一家,一个温馨的词语,我们家里,是一个电器较多的家,其中,我最喜欢,也最高科技的就是电脑了!因为他,带给我们家一些生气!也是它代替了旧一代的电脑!电脑,一身乌黑的衣服,本来不算帅的电脑有了几分帅气,而且又巧妙地装饰了它的外表,电脑是...

gallery的用法_weixin_30387339的博客-程序员秘密

gallery原意为相框的意思,在Android中,可以用它来展示一系列的图片等等。最近编写了自己的适配器,来达到想要的gallery效果。但是在gallery子元素的布局文件中,把ImageView作为最外一层,layout_width和layout_height都不起作用。最后只好在ImageView外面再套一层LinearLayout,并设置它的 layout_width和...

mybatis踩坑:批量插入oracle与mysql的区别_骑鱼看大海的博客-程序员秘密

环境:mybatis+oracle功能需求:做项目时遇到一个需求,需要把几条数据批量插入到数据库。内容:开始做的时候,一下子就想到了&amp;lt;insert id=&quot;save&quot;  useGeneratedKeys=&quot;false&quot; parameterType=&quot;java.util.List&quot;&amp;gt;insert into table (ID,IMAGE_URL,STATE,UPDATE_T...

蓝桥杯——快速排序(2018JavaB组第5题9分)_weixin_30868855的博客-程序员秘密

快速排序(18JavaB5,9’)以下代码可以从数组a[]中找出第k小的元素。它使用了类似快速排序中的分治算法,期望时间复杂度是O(N)的。请仔细阅读分析源码,填写划线部分缺失的内容。import java.util.Random;public class Main{ public static int quickSelect(int a[], int l, int r, int...

随便推点

Android平台3D引擎研究4_最老程序员闫涛的博客-程序员秘密

OpenGL ES纹理处理使用OpenGL ES的纹理可以将图片贴到3D模型上,从而生成逼真的3D场景。纹理是以图片文件形式存在的,图片被归一化为(0.0, 0.0)到(1.0, 1.0)的矩形区域,通常一个3D物体具有一个纹理文件即可,每处三角片所使用的纹理可以通过uv坐标

LeetCode 516. Longest Palindromic Subsequence 解题报告_骆小坑的博客-程序员秘密

LeetCode 516. Longest Palindromic Subsequence 解题报告题目描述Given a string s, find the longest palindromic subsequence’s length in s. You may assume that the maximum length of s is 1000..示例Example 1: Input

SqlServer 递归查询树形数据_PPL1998的博客-程序员秘密

一直没有在意过数据库处理树形数据的重要性,直到有一天朋友问起我关于树形数据查询的问题时才发现根本不会,正好这个时候也要用到递归进行树形数据的查询于是在网上查了一圈,语法总结如下参考文献:https://msdn.microsoft.com/query/dev10.query?appId=Dev10IDEF1&l=ZH-CN&k=k(WITH_TSQL);k(SQL11.SWB.TSQLRE

OpenGL法线贴图_vvc223c的博客-程序员秘密

参考:https://learnopenglcn.github.io/05%20Advanced%20Lighting/04%20Normal%20Mapping/现实中的物体表面并非是平坦的,而是表现出无数(凹凸不平的)细节.例如,砖块的表面。砖块的表面非常粗糙,显然不是完全平坦的:它包含着接缝处水泥凹痕,以及非常多的细小的空洞。如果我们在一个有光的场景中看这样一个砖块的表面,问题就出来了...

HZAU 1206:01字典树求 抑或最大和_calabash_boy的博客-程序员秘密

题意:给出n个数字(n题解:枚举区间右端点 r ,那么左端点 l 一定比 r 小,同时[ l , r ]的抑或和可以表示成 [ 1, r ]xor[ 1 , l-1 ],那么我们枚举一个 r,求出[ 1, r]的和,然后就是查询[1, 1 ][ 1, 2 ] [1 , 3 ]……[1, r-1]中和[1,r]抑或最大的那个值。这个可以通过01字典树完成,然后还要求字典序最小,字典树终点处记一个