使用VS Code 编译运行C/C++程序


安装C/C++编译器

macOS与主流的发行版Linux系统都自带了C/C++编译器(gcc和g++),而对于Windows,我们需要通过Mingw-w64来获得C/C++编译器,安装步骤如下:

  1. 访问https://sourceforge.net/projects/mingw-w64/files/,选择MinGW-W64 GCC最新版本中的x86_64-posix-seh进行下载。
  2. 下载完成后,得到的是一个7z文件格式的压缩包。将文件解压,并注意解压的路径不能包含空格、中文以及其他特殊字符。
  3. 在解压出的文件夹中,找到g++.exe文件所在的bin文件夹的路径,把路径添加到PATH环境变量中。

验证C/C++开发环境

打开命令行,在命令行中输入 gcc --version,以验证C编译器是否安装成,输入g++ --version已验证C++编译器是否安装成功。


安装插件

打开vs code,在内置插件管理视图中,搜索并安装 C/C++ 插件与Code Runner插件。

  • C/C++插件:由微软官方开发并维护。
  • Code Runner插件:由韩骏老师编写,一键运行代码,支持40多种语言。

创建C++文件

创建一个文件夹,使用vs code打开这个文件夹。点击新建文件,然后创建一个名为helloworld.cpp的文件,文件创建后,会自动在编辑区域内打开。(以C++为例,C语言同理)
在创建的helloworld.cpp文件中输入以下C++代码:

#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main()
{
     vector<string> msg{"Hello", "C++", "World", "from", "VS Code"};
    for (const string &word : msg)
    {
        cout << word << " ";
    }
    cout << endl;
}

运行C++文件

我们下载安装的Code Runner插件可以一键运行多种语言,在helloworld.cpp文件的右键菜单中选择Run Code命令或者点击右上角Run Code按钮,可以运行C++代码,在输出面板可以看到代码的运行结果。

调试

以windows系统为例,Linux与macOS同理。

创建tasks.json文件

首先,我们需要创建一个tasks.json文件来告诉vs code如何构建C++程序。
打开helloworld.cpp文件。在顶部的菜单栏中选择终端->配置默认生成任务->选择C/C++:g++.exe build active file选型。

在这里插入图片描述
选择好构建任务后,vs code会在vscode文件夹中创建一个tasks.json文件。
tasks.json文件的内容如下:

{
	"version": "2.0.0",
	"tasks": [
		{
			"type": "shell",
			"label": "C/C++: g++.exe build active file",
			"command": "C:\\MinGW\\bin\\g++.exe",
			"args": [
				"-g",
				"${file}",
				"-o",
				"${fileDirname}\\${fileBasenameNoExtension}.exe"
			],
			"options": {
				"cwd": "${workspaceFolder}"
			},
			"problemMatcher": [
				"$gcc"
			],
			"group": {
				"kind": "build",
				"isDefault": true
			}
		}
	]
}

在以上的tasks.json文件内容中,command属性定义了编辑器的路径,也就是g++.exe的路径,args数组定义了传递给C++编译器的参数。

构建C++文件

  1. 打开helloworld.cpp文件
  2. 通过快捷键Ctrl+Shift+B或在菜单栏中选择 终端—>运行生成任务。
  3. 当构建任务开始后,vscode会打开一个集成终端并执行构建命令。当构建任务结束后,集成终端会
    显示如下输出,并且生成一个helloworld.exe文件。
    在这里插入图片描述
  4. 打开一个新的集成终端,在集成终端输入并执行.\helloworld.exe,就能运行该C++文件。

在这里插入图片描述

创建launch.json文件

我们需要配置一个launch.json调试配置文件。
在顶部菜单栏中选择 运行->添加配置,然后选择C++(GDB/LLDB)。然后选择g++.exe build and debug active file选项。(g++.exe 生成和调试活动文件)
在这里插入图片描述
选择好调试配置后,Visual Studio Code会在vscode文件夹中创建一个launch.json调试配置文件。
launch.json文件中的内容如下所示:

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "g++.exe - 生成和调试活动文件",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "C:\\MinGW\\bin\\gdb.exe",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "C/C++: g++.exe build active file"
        }
    ]
}

在上面的launch.json文件中,program属性指定了要调试的程序。

调试C++文件

首先,打开要调试的文件,在相应的代码行处按下F9快捷键添加断点,或者单击编辑区域左侧的边槽添加断点。添加断点后,左侧会出现一个红色圆点。
在这里插入图片描述
接下来,通过以下任意一种方式启动C++调试器。

  • 在顶部的菜单栏中 选择 运行->启动调试
  • 使用F5快捷键。
  • 通过左侧的活动栏切换到调试视图,点击绿色的调试按钮。

启动C++调试器后,C++调试器会停在断点处,并打开集成终端。在左侧的调试视图中,可以看到与当前代码相关的变量信息。
在这里插入图片描述
单击调试工具栏中的红色停止按钮,或者使用Shift+F5快捷键,就能退出调试。


总结

VS Code运行C/C++程序,还是挺方便的(借助 Code Runner一键运行),就是感觉调试麻烦了点。
  • 11
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
基于LSP(Language Server Protocol)的C/C++程序编辑与编译服务需要以下几个关键组件: 1. 编辑器/客户端:这可以是任何支持LSP的编辑器或IDE,例如Visual Studio Code、Sublime Text、Vim等。编辑器通过LSP与服务端进行通信,发送请求并接收响应。 2. 语言服务器:语言服务器是一个独立的进程,负责处理客户端发送的请求并返回响应。对于C/C++语言,可以使用clangd作为语言服务器。clangd提供了代码补全、跳转到定义、重构等功能,以及代码的静态分析和编译。 3. 编译器/工具链:C/C++语言需要一个编译器来将源代码编译为可执行文件。在服务端中,你需要安装适当的C/C++编译器(例如GCC、Clang)和相关的工具链。 4. 代码分析工具:为了提供更多的代码分析和智能提示功能,你可能需要使用其他代码分析工具,如Clang-Tidy、Cppcheck等。这些工具可以帮助检查代码中的潜在问题或错误,并提供建议。 5. 构建系统:服务端需要一个构建系统来编译和构建C/C++项目。常见的构建系统包括Make、CMake等。你需要确保你的构建系统配置正确,并能与语言服务器配合使用。 6. 服务器端代码:这是一个运行在服务器上的代码,负责与客户端进行通信,并提供C/C++编辑和编译服务。服务器端代码需要实现LSP协议,处理客户端的请求并返回响应。 通过以上组件的组合,你可以搭建一个基于LSP的C/C++程序编辑与编译服务,提供代码补全、导航、重构等功能,以及对代码的静态分析和编译支持。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值