CMake在Windows环境下Visual Studio Code的使用

1,安装下载

地址:Visual Studio Code - Code Editing. Redefined

双击安装

选择安装路径

可勾选微软的AI工具

2,环境介绍

2.1 ,界面介绍

2.2中文包的安装

下载中文简体

汉化后的界面

2.3 配置C/C++环境

VSCode安装好之后,我们还是要知道,VSCode毕竟是一个高级的编辑器,只能用来写C/C++代码,不能直接编译代码。

所以,如果我们要能使用VSCode搭建C/C++的编译和调试环境,还必须有编译器使用。

为了方便,我们就使用MinGw-w64 ,MinGw-w64移植到windows平台的一个gcc编译器,使用起来也是非常方便的。

下面我们就演示怎么下载和配置MinGw-w64

地址:https://sourceforge.net/projects/mingw-w64/

解压后我们会得到一个mingw文件夹

将其复制到你需要的位置

双击打开并进入bin文件夹内,这里有我们的gcc(C语言编译器)、g++(C++编译器),gdb调试器(可以使用断点调试)等

这里说gcc是C语言编辑器,g++是C++的编译器其实不太准确,因为gcc也可以编译C++,但是需要自己配置链接C++的库,g++默认链接了C++的库。

复制bin路径

!这样我们的准备环境就配置好了

我们可以使用一些命令来测试一下,按win+r输入cmd打开终端

以此输入

2.4

安装vscode并安装一下必备的插件

vscode安装大家应该都会,如果通过浏览器下载vscode速度比较慢的话,可以复制下载链接放到迅雷里面去下载

安装必备插件

我们需要安装两个插件

  1. 安装C/C++插件:

3 配置

配置阶段我提供了两类配置方式,大家按需选择即可

第一类 使用vscode插件进行配置

这类配置方法一般来说不需要自己动手配置内容,只需要安装一下插件即可。

优点:使用简单,基本上拿来就可以使用,比较适合C/C++初学者(因为老师们貌似上来都是直接教C/C++语法,而不是C/C++编译器、C/C++标准、C/C++项目构成等一些C/C++基本内容)以及一些不需要复杂功能的同学。

缺点:可扩展性差(使用插件基本上是用插件配置好的命令去编译运行程序,如果你需要改或扩展一些配置的话,你得对一些命令很熟悉,当然这不是重点,重点是使用插件配置一般只能有一个有效的配置项,例如:如果你想从调试模式切换到编译模式,你得手动更改一下配置文件,而不是像大部分编辑器那样,选择一个配置去运行)

样例一:使用run code插件

因为插件配置实质上是用它提供的指令进行编译执行,因此无法直接使用断点调试功能,需要对配置进行一定的更改
这里以使用run code为例,在扩展里搜索code runner这个插件并安装

程序是在下面的输出栏中运行的,是无法输入内容的,所以我们还需要改一些内容,以便能够正常输入内容。
找到code runner扩展,点击扩展设置,找到Run In Terminal并勾上,这样就能够正常地输入内容了。

第二类 自定义配置

这类配置方法要自己手写配置内容,比较复杂,但可扩展性强
优点 :可扩展性强
缺点:配置比较复杂、需要一定的知识储备

样例一:使用windows启动,让编译的文件放在同目录下的build文件夹中,并在黑窗(cmd)中运行

在配置之前,我们需要先创建一个.cpp文件,这里我创建了一个Test文件夹,并写了一个hello world。

请注意,一切的配置都要从一个cpp文件的编辑界面开始,否则vscode的提示可能会不太一样
样例一的配置方式因为本质上就是直接编译运行,因此无法使用断点调试功能

第一步 :配置基本环境

按下ctrl + shift + p打开命令面板,输入C/C++,找到C/C++编辑配置(UI)打开

你可以在这个页面中选择编译器,更改C/C++标准,还可以更改IntelliSense 模式

PS:IntelliSense 模式和文本解析有关,如果你选择的IntelliSense模式和你的编译器不匹配,那么会报错,这就会引起例如写代码的时候没有提示、编辑器说代码正确、编译的时候却不正确等问题

这里可以选择你需要的C/C++标准

配置的内容会自动写入.vscode文件夹中的c_cpp_properties.json文件中。

这是我的c_cpp_properties.json文件内容

复制代码
{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "compilerPath": "F:/C++Development/mingw-w64/13.1.0/bin/g++.exe",
            "cStandard": "c17",
            "cppStandard": "gnu++17",
            "intelliSenseMode": "windows-gcc-x64"
        }
    ],
    "version": 4
}

第二步:配置task编译任务

按下ctrl + shift + p打开命令面板,输入task,找到 任务:配置任务 打开。

这里,介绍一下文件内需要注意的配置项

这是我的task.json中的配置内容

复制代码
{
	"version": "2.0.0",
	"tasks": [
		{
			"type": "cppbuild",
			"label": "C/C++: g++.exe 生成活动文件",
			"command": "E:/Microsoft VS Code/mingw64/bin/g++.exe",
			"args": [
				"-fdiagnostics-color=always",
				// 这个命令的作用是转化成GBK编码,可以防止终端中出现乱码
                // 乱码问题原因:终端编码和vscode编码不一致。
                // 国内大部分电脑终端编码默认是gbk,而vscode编码默认是utf-8,所以会出现问题乱码问题。
                // 加上这个命令后先转化为gbk编码后编译,就不会出现乱码了。
				// "-fexec-charset=GBK",
				"-g",
				"${file}", // 如果要多文件编译,改成 "${fileDirname}\\*.c*" 可以把c和cpp文件都作为cpp文件编译。
				"-o",
				// 这里加了一个build,让编译后的程序在同目录下的build文件夹中
				"${fileDirname}\\${fileBasenameNoExtension}.exe"
			],
			"options": {
				"cwd": "E:/Microsoft VS Code/mingw64/bin"
			},
			"problemMatcher": [
				"$gcc"
			],
			"group": "build",
			"detail": "编译器: E:/Microsoft VS Code/mingw64/bin/g++.exe"
		}
	]
}

第三步:配置launch.json启动任务

因为现在的C/C++插件不支持通过命令面板创建任务,所以我们需要手动建一个launch.json文件

建完后打开,我们会发现右下角有一个添加配置

选择windows启动

复制代码
{
    "configurations": [
        
        {
            "name": "(Windows) 启动",
            "type": "cppvsdbg",
            "request": "launch",
            // 这项是启动的程序位置,把tasks.json中的生成文件的路径复制粘贴过来就可以了
            "program": "${fileDirname}\\build\\${fileBasenameNoExtension}.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            // 这项改为integratedTerminal,就和code runner一样是在vscode内置终端中运行了
            "console": "externalTerminal"
             // 这一项一开始没有,要自己写,代表启动前先执行的编译任务,把tasks.json中的label复制粘贴过来就可以了
        }

    ]
}

样例二:使用gdb启动,让编译的文件放在同目录下的build文件夹中,并在vscode中运行(可以使用断点调试)

样例二使用了gdb调试器,所以能使用vscode的断点调试功能。

样例二与样例一稍作更改的地方是launch启动任务和task编译任务,因此就不配图演示了,只需要对照有注释的地方进行更改即可。

task编译任务

这是我的编译任务:

复制代码
{
	"version": "2.0.0",
	"tasks": [
		{
			"type": "cppbuild",
			"label": "C/C++: g++.exe 生成活动文件",
			"command": "E:/Microsoft VS Code/mingw64/bin/g++.exe",
			"args": [
				"-fdiagnostics-color=always",
				// 这个命令的作用是转化成GBK编码,可以防止终端中出现乱码
                // 乱码问题原因:终端编码和vscode编码不一致。
                // 国内大部分电脑终端编码默认是gbk,而vscode编码默认是utf-8,所以会出现问题乱码问题。
                // 加上这个命令后先转化为gbk编码后编译,就不会出现乱码了。
				"-fexec-charset=GBK",
				"-g",
				"${file}", // 如果要多文件编译,改成 "${fileDirname}\\*.c*" 可以把c和cpp文件都作为cpp文件编译。
				"-o",
				// 这里加了一个build,让编译后的程序在同目录下的build文件夹中
				"${fileDirname}\\build\\main.exe"
			],
			"options": {
				"cwd": "E:/Microsoft VS Code/mingw64/bin"
			},
			"problemMatcher": [
				"$gcc"
			],
			"group": "build",
			"detail": "编译器: E:/Microsoft VS Code/mingw64/bin/g++.exe"
		}
	]
}

launch调试任务

注意:如果你不是copy这里给出的代码,而是自己像上文一样点击添加配置然后修改,请选择gdb启动而不是windows启动。

复制代码
{
    "configurations": [
    {
        "name": "(gdb) 启动", // 调试任务的名称,改一个你想要的
        "type": "cppdbg",
        "request": "launch",
        "program": "${fileDirname}\\build\\main.exe",  // 入口程序的位置,和task任务生成的程序位置相同
        "args": [],
        "stopAtEntry": false,
        "cwd": "${fileDirname}",
        "environment": [],
        "externalConsole": false,
        "MIMode": "gdb",
        "miDebuggerPath": "E:/Microsoft VS Code/mingw64/bin/gdb.exe", // gdb调试器的位置,和gcc、g++在一个目录下  
        "setupCommands": [
            {
                "description": "为 gdb 启用整齐打印",
                "text": "-enable-pretty-printing",
                "ignoreFailures": true
            },
            {
                "description": "将反汇编风格设置为 Intel",
                "text": "-gdb-set disassembly-flavor intel",
                "ignoreFailures": true
            }
        ],
        "preLaunchTask": "C++调试"  // 启动前调用编译任务
    }
    ]
}

常见问题

Q:终端出现乱码怎么办?

A:在编译的时候加上"--exec-charset=GBK",具体可以看本教程的示例,两类配置方式中都有讲解

Q:在第二种配置方式中,选择task任务时,没有g++、gcc选项怎么办?

A:copy教程中的配置,然后对照图片说明进行更改。

相关推荐
谢尔登1 小时前
【已解决】Webstorm 每次使用 git pull/push 都要输入令牌/密码登录
ide·git·webstorm
南城猿4 小时前
Pycharm中Django框架使用{% load static %}模板,HTML报错
ide·pycharm·django
还是鼠鼠4 小时前
Node.js中间件的5个注意事项
javascript·vscode·中间件·node.js·json·express
竹之却6 小时前
Linux Vim 编辑器的使用
linux·编辑器·vim
汲海6 小时前
Jupyter 505
ide·python·jupyter
Alger_Hamlet6 小时前
Typora Markdown编辑器 for Mac
macos·编辑器
移远通信7 小时前
QuecPython 的 VScode 环境搭建和使用教程
ide·vscode·编辑器
阿杜杜不是阿木木7 小时前
使用ollama部署本地大模型(没有GPU也可以),实现IDEA和VS Code的git commit自动生成
linux·git·vscode·ai·intellij-idea·ollama
DKPT8 小时前
Eclipse,MyEclipse,IDEA,Vscode这些编译器和JDK的相爱相杀
java·eclipse·编辑器·intellij-idea·myeclipse
莲动渔舟1 天前
国产编辑器EverEdit - 扩展脚本:让EverEdit支持“批量查找”功能
编辑器·emeditor·notepad·everedit