记录VScode配置C/C++环境

软件安装

  • 这里略过VScode和MinGW-W64 GCC-8.1.0的安装过程,只说一下注意事项

安装注意

在这里插入图片描述

图中另有大哥做出了解释,经过几次尝试,最终配置成功的版本是上图第二个(不过区别不大)
在这里插入图片描述
Visual Studio Code官网下载路径
MinGW-W64 GCC-8.1.0官网下载路径
MinGW-W64 GCC-8.1.0的安装路径需要记清楚,后续配置要用到
在这里插入图片描述

配置系统环境变量

win+q
在这里插入图片描述
系统环境变量中,添加环境变量path(MinGW-W64 GCC-8.1.0的安装路径)
在这里插入图片描述

  • 我的路径是:D:\vscode\MyVsTool\CEdit\MinGWIns\mingw64\bin

检查是否配置成功

  • cmd中输入gcc -v
  • 在这里插入图片描述

VScode配置C/C++环境

  1. 下载C/C++插件
  2. 创建一个要用来运行C代码的文件夹,命名为.vscode(配置相关文件,不要省略.
  3. .vscode文件夹下创建三个文件c_cpp_properties.jsonlaunch.jsontasks.json
    在这里插入图片描述
  • c_cpp_properties.json路径需要修改
{
  "configurations": [
      {
          "name": "Win32",
          "intelliSenseMode": "gcc-x64",
          "includePath": [
              "${workspaceFolder}",
              "D:\\vscode\\MyVsTool\\CEdit\\MinGWIns\\mingw64\\lib\\gcc\\x86_64-w64-mingw32\\8.1.0\\include\\c++", 
              "D:\\vscode\\MyVsTool\\CEdit\\MinGWIns\\mingw64\\lib\\gcc\\x86_64-w64-mingw32\\8.1.0\\include\\c++\\x86_64-w64-mingw32", 
              "D:\\vscode\\MyVsTool\\CEdit\\MinGWIns\\mingw64\\lib\\gcc\\x86_64-w64-mingw32\\8.1.0\\include\\c++\\backward", 
              "D:\\vscode\\MyVsTool\\CEdit\\MinGWIns\\mingw64\\lib\\gcc\\x86_64-w64-mingw32\\8.1.0\\include", 
              "D:\\vscode\\MyVsTool\\CEdit\\MinGWIns\\mingw64\\include",
              "D:\\vscode\\MyVsTool\\CEdit\\MinGWIns\\mingw64\\lib\\gcc\\x86_64-w64-mingw32\\8.1.0\\include-fixed",
              "D:\\vscode\\MyVsTool\\CEdit\\MinGWIns\\mingw64\\bin\\..\\lib\\gcc\\x86_64-w64-mingw32\\8.1.0\\..\\..\\..\\..\\x86_64-w64-mingw32\\include"
          ],
          "defines": [
              "_DEBUG",
              "UNICODE",
              "__GNUC__=7",
              "__cdecl=__attribute__((__cdecl__))"
          ],
          "compilerPath": "",
          "browse": {
              "path": [
                  "${workspaceFolder}",
                  "D:\\vscode\\MyVsTool\\CEdit\\MinGWIns\\mingw64\\lib\\gcc\\x86_64-w64-mingw32\\8.1.0\\include\\c++", 
                  "D:\\vscode\\MyVsTool\\CEdit\\MinGWIns\\mingw64\\lib\\gcc\\x86_64-w64-mingw32\\8.1.0\\include\\c++\\x86_64-w64-mingw32",
                  "D:\\vscode\\MyVsTool\\CEdit\\MinGWIns\\mingw64\\lib\\gcc\\x86_64-w64-mingw32\\8.1.0\\include\\c++\\backward",
                  "D:\\vscode\\MyVsTool\\CEdit\\MinGWIns\\mingw64\\lib\\gcc\\x86_64-w64-mingw32\\8.1.0\\include",
                  "D:\\vscode\\MyVsTool\\CEdit\\MinGWIns\\mingw64\\include",
                  "D:\\vscode\\MyVsTool\\CEdit\\MinGWIns\\mingw64\\lib\\gcc\\x86_64-w64-mingw32\\8.1.0\\include-fixed",
                  "D:\\vscode\\MyVsTool\\CEdit\\MinGWIns\\mingw64\\bin\\..\\lib\\gcc\\x86_64-w64-mingw32\\8.1.0\\..\\..\\..\\..\\x86_64-w64-mingw32\\include"
              ]
          },
          "cppStandard": "c++17",
          "cStandard": "c17"
      }
  ],
  "version": 4
}
  • launch.json
{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    "version": "0.2.0",
    "configurations": [
        {
            "name": "g++.exe build and debug active file",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": true,
            "MIMode": "gdb",
            "miDebuggerPath": "D:\\vscode\\MyVsTool\\CEdit\\MinGWIns\\mingw64\\bin\\gdb.exe",        /*修改成自己bin目录下的gdb.exe,这里的路径和电脑里复制的文件目录有一点不一样,这里是两个反斜杠\\*/
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "g++"
        }
    ]
}
  • tasks.json
{
    "version": "2.0.0",
    "command": "g++",
    "args": [
           "-g",
           "${file}",
           "-o",
           "${fileBasenameNoExtension}.exe"
       ],
    "problemMatcher": {
       "owner": "cpp",
       "fileLocation": [
           "relative",
           "${workspaceRoot}"
       ],
       "pattern": {
           "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
           "file": 1,
           "line": 2,
           "column": 3,
           "severity": 4,
           "message": 5
       }
   }
}

这里贴上我的测试代码

  • C代码
#include <stdio.h>
main()
{
	printf("Hello World!\n");
}

在这里插入图片描述
在这里插入图片描述

  • C++代码(有序线性表合并)
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

#define MAXSIZE 100
#define ElemType int
#define Status int

//顺序表的数据结构
typedef struct 
{
	ElemType *data;
	int length;
}SqList;


//初始化
void InitList(SqList &L)
{
	L.data = new ElemType[MAXSIZE];
	L.length = 0;
}

//打印线性表
void PrintList(SqList L) 
{
	printf("当前顺序表的所有元素:");
	for (int i = 0; i <L.length; i++)
	{
		printf("%d ", L.data[i]);
	}
	printf("\n");
}

//创建线性表
void Create(SqList &L)
{
	int n,i;
	printf("请输入要输入元素的个数:");
	scanf("%d", &n);
	if (n<0 || n>MAXSIZE) 
	{
		printf("请输入正确的个数!\n");
	}
	for (i = 0; i < n; i++) 
	{
		printf("请输入第%d个元素:",(i+1));
		scanf("%d", &(L.data[i]));
		L.length++;
	}

}


//合并二个有序线性表到C中
void MergeList(SqList &A, SqList &B, SqList &C)
{
	int i=0, j=0,k=0;
	int m = A.length;
	int n = B.length;

	while(j < n && i< m)
	{
			if (A.data[i]>B.data[j])
			{
				C.data[k] = B.data[j];
				C.length++;
				k++;
				j++;
			}
			else
			{
				C.data[k] = A.data[i];
				C.length++;
				k++;
				i++;
			}
	}
			
	while (i < m)	//B已到达表尾,依次将A的剩余元素插人C的最后
	{
		C.data[k] = A.data[i];
		C.length++;
		k++;
		i++;
	}
	while (j < n)	//A已到达表尾,依次将B的剩余元素插人C的最后
	{
		C.data[k] = B.data[j];
		C.length++;
		k++;
		j++;
	}


}

int main()
{
	SqList A, B,C;
	//初始化
	InitList(A);
	InitList(B);
	InitList(C);
	//创建
	printf("请输入集合A的元素:\n");
	Create(A);
	printf("请输入集合B的元素:\n");
	Create(B);

	//合并A和B集合到A中
	MergeList(A, B, C);
	PrintList(C);

}

在这里插入图片描述
在这里插入图片描述

这里附上过程中出现的问题

一、找不到任务“g++.exe build active file”

在这里插入图片描述

解决:preLaunchTask中的字段"preLaunchTask": “g++.exe build active file"未修改为"preLaunchTask”: “g++”,编译器无法识别;
在这里插入图片描述

二、控制台中文乱码

  • 首先c语言的运行程序是调用的cmd.exe而window的cmd的编码默认为936也就是gb2312
  • 运行->cmd->在白色窗口头部点击右键->属性 可以查看到,主要现在用utf-8较多,所以用utf-8编码的c程序出现了乱码
    在这里插入图片描述

解决

在vs code修改代码的打开和保存方式
在这里插入图片描述

参考

VS Code 配置编译报错问题汇总
vs code解决C/C++控制台中文乱码

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值