IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> 记录VScode配置C/C++环境 -> 正文阅读

[开发工具]记录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++控制台中文乱码

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-09-15 02:12:56  更:2022-09-15 02:13:57 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/28 19:01:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计