VSCode怎么运行C/C++代码

浅晨吖_1425

浅晨吖_1425

2026-03-21

920人浏览

原创

根本原因是vscode的f5调试不自动编译,只运行已存在的可执行文件;必须先通过tasks.json配置g++编译(含-g参数),再在launch.json中精确匹配输出路径,确保program字段指向真实生成的a.out或main.exe。

vscode怎么运行c/c++代码

VSCode里按F5跑C++直接报错“launch: program ‘…/a.out’ does not exist”

根本原因是VSCode默认不编译,只尝试运行——它想找一个现成的可执行文件,但你还没生成它。g++ 没执行过,a.out 或 main.exe 根本不存在。

解决路径很直:必须先编译,再调试。不能跳过构建环节。

  • 确保已安装 g++(Linux/macOS)或 MinGW-w64 / MSVC(Windows),并在终端输入 g++ --version 能正常返回
  • 在VSCode中右键 main.cpp → “Run Code” 是快捷方式,但它依赖插件(如 Code Runner),和 F5 调试走的是两套逻辑
  • F5 调试必须配 launch.json,且里面 program 字段指向的路径得是真实存在的可执行文件——所以得先让 tasks.json 把它编译出来

怎么配 tasks.json 让 Ctrl+Shift+B 编译成功

这是最常卡住的一步:VSCode不知道该用什么命令编译,也不清楚要不要链接标准库、是否启用C++17等。

手动建 .vscode/tasks.json,核心是填对 args ——尤其注意 -o 输出路径要和 launch.json 里一致,且别漏掉 -g(否则调试时看不到变量):

VSCode
VSCode

避免常见的 VSCode 错误——设置冲突、调试器配置和扩展冲突。

下载
{
  "version": "2.0.0",
  "tasks": [
    {
      "type": "shell",
      "label": "g++ build active file",
      "command": "/usr/bin/g++",
      "args": [
        "-g",
        "${file}",
        "-o",
        "${fileDirname}/${fileBasenameNoExtension}"
      ],
      "options": {
        "cwd": "${fileDirname}"
      }
    }
  ]
}
  • Windows用户把 command 改成 "C:\msys64\ucrt64\bin\g++.exe" 这类实际路径,别写 g++(环境变量在 tasks 里不一定生效)
  • ${fileBasenameNoExtension} 生成的可执行文件名不含 .cpp 后缀,比如 main.cpp → main(Linux/macOS)或 main.exe(Windows),launch.json 必须严格匹配这个名
  • 如果用了 #include <vector></vector> 却报 undefined reference,大概率是漏了 -std=c++17 或类似参数

launch.json 的 program 字段填绝对路径还是相对路径

填相对路径更稳。VSCode调试器启动时工作目录(cwd)默认是打开的文件夹根目录,不是源文件所在目录。

  • 推荐写成 "${fileDirname}/${fileBasenameNoExtension}" ——这样不管你在哪个子文件夹开的VSCode,都能找到同目录下的可执行文件
  • 如果写成 "./build/main",但实际没建 build/ 目录,或 tasks.json 输出到了别处,就会失败
  • Windows下注意路径分隔符不用改,${fileDirname} 自动返回带反斜杠的路径,launch.json 完全接受
  • 加一行 "externalConsole": true,否则 cin / scanf 可能卡住(尤其 Windows + MinGW)

Code Runner插件点“运行”却输出乱码或一闪而过

这是最表象也最容易误判的问题:你以为是VSCode配置错了,其实是终端编码或执行环境问题。

  • 中文输出乱码?在 Code Runner 设置里搜 code-runner.runInTerminal,设为 true;再进 VSCode 设置搜 terminal integrated env,给 Windows 加上 "terminal.integrated.env.windows": {"CHCP": "65001"}
  • 窗口一闪而过?不是程序崩了,是执行完就退出。加一句 std::cin.get(); 在末尾,或改用终端运行模式(见上一条)
  • Code Runner 默认用 g++ -o /tmp/cpp /tmp/cpp.cpp && /tmp/cpp,临时路径在不同系统行为不一,不适合调试——它适合快速验证语法,不适合查逻辑错误

真正需要单步、看变量、设断点的时候,F5 + tasks.json + launch.json 这一套绕不开。省略构建步骤,等于没装发动机就踩油门。

C++免费学习笔记(深入):立即使用
在学习笔记中,你将探索 C++ 的入门与实战技巧!

相关专题

更多
json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

2023.08.07

2055

5

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.23

3042

1

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

2023.10.13

1036

3

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

2025.09.10

3459

7

undefined是什么
undefined是什么

undefined是代表一个值或变量不存在或未定义的状态。它可以作为默认值来判断一个变量是否已经被赋值,也可以用于设置默认参数值。尽管在不同的编程语言中,undefined可能具有不同的含义和用法,但理解undefined的概念可以帮助我们更好地理解和编写程序。本专题为大家提供undefined相关的各种文章、以及下载和课程。

2023.07.31

11705

4

网页undefined是什么意思
网页undefined是什么意思

网页undefined是指页面出现了未知错误的意思,提示undefined一般是在开发网站的时候定义不正确或是转换不正确,或是找不到定义才会提示undefined未定义这个错误。想了解更多的相关内容,可以阅读本专题下面的文章。

2024.08.14

5507

7

网页undefined啥意思
网页undefined啥意思

本专题整合了undefined相关内容,阅读下面的文章了解更多详细内容。后续继续更新。

2025.12.25

2516

7

windows查看端口占用情况
windows查看端口占用情况

Windows端口可以认为是计算机与外界通讯交流的出入口。逻辑意义上的端口一般是指TCP/IP协议中的端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等等。怎么查看windows端口占用情况呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2023.07.26

3159

3

查看端口占用情况windows
查看端口占用情况windows

端口占用是指与端口关联的软件占用端口而使得其他应用程序无法使用这些端口,端口占用问题是计算机系统编程领域的一个常见问题,端口占用的根本原因可能是操作系统的一些错误,服务器也可能会出现端口占用问题。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.27

2718

6

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程