首页 > 编程语言 >[C/C++] Visual Stdio Code中多线程多源码文件编译、运行和调试

[C/C++] Visual Stdio Code中多线程多源码文件编译、运行和调试

时间:2023-06-24 10:45:27浏览次数:50  
标签:文件 Code 配置文件 json 源码 多线程

搞了很久,记录一下:

一. 环境

  • OS:Ubuntu 20.04
  • VS Code:1.77.0
  • g++:g++ (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0

二. 配置文件

下面两个文件先不要手动创建,下面第三章会讲到:

  • task.json:编译程序的配置文件;
  • launch.json:运行程序的配置文件.

三. 编译&运行

1. 打开main函数所在的cpp文件,点击右上角的运行按钮的下拉选项,并选择“Run C/C++ File”:

2. 选择第一个选项,VS Code会自动生成默认 task.json文件 并运行。由于默认task配置文件不适用于我们的多线程多文件项目,因此会报错

3. 关闭错误弹窗,修改 task.json 文件如下,其中红框是修改的地方:

{
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: g++ build active file",
            "command": "/usr/bin/g++",
            "args": [
                "-fdiagnostics-color=always",
                "-g",                   // 开启调试选项
                // "${file}",           // 单文件
                "${fileDirname}/*.cpp", // 多文件源码需要添加所有的 源码文件 才能通过编译(这里是同目录下的所有cpp文件)
                "-pthread",             // 多线程编译(代码中用到了多线程)
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}"
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "Task generated by Debugger."
        }
    ],
    "version": "2.0.0"
}

4. 回到main函数所在的cpp文件,点击运行图标(三角形),就能正常编译运行了:

四. 添加运行参数

如果需要添加程序的运行参数,例如我们本例中的项目需要指定一个端口号,那么可以通过在配置文件 launch.json 中添加:

1. 按照下面操作,VS Code将会自动生成 launch.json文件 ,

 2. 将需要的参数添加到里面就好了:

 五. 调试

完成了上面的步骤,调试就变得很简单了,和单源码文件工程调试一样,可在任意地方(任意文件)打上断点:

 六. 致谢

感谢CCTV~

标签:文件,Code,配置文件,json,源码,多线程
From: https://www.cnblogs.com/chasemeng/p/17500783.html

相关文章

  • k8s驱逐篇(6)-kube-controller-manager驱逐-NodeLifecycleController源码分析
    概述k8sv1.16版本中NodeController已经分为了NodeIpamController与NodeLifecycleController,本文主要介绍NodeLifecycleController。NodeLifecycleController主要功能有:(1)定期检查node的心跳上报,某个node间隔一定时间都没有心跳上报时,更新node的readycondition值为false或unkno......
  • leetcode 16 最接近的三数之和 3sum-closest【ct】
    ===思路:在遍历中去计算,每一轮循环中都去计算,如果distance更小就去更新distance。如果sum>target,end--,如果sum<target,start++,如果等于,就可以直接返回target  ......
  • leetcode 113 路径总和2 path-sum-ii【ct】
    ===思路:很简单,记得递归的时候传入path.slice ......
  • Xcode 15 beta 2 (15A5161b) 发布下载 - Apple 平台 IDE (visonOS 1 beta 已发布)
    Xcode15beta2(15A5161b)发布下载-Apple平台IDE(visonOS1beta已发布)IDEforiOS/iPadOS/macOS/watchOS/tvOS/visonOS此版本已加入visonOS支持。请访问原文链接:https://sysin.org/blog/apple-xcode-15/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org......
  • AtCoder Regular Contest 154 C Roller
    洛谷传送门AtCoder传送门被这题干爆了考虑把环压缩成块。这样一次操作就是,选择两个相邻的块,把左边块长度减\(1\),右边块长度加\(1\)。特判\(a,b\)所有块长都是\(1\)的情况,这种情况不能操作。排除掉上面的情况,我们断言:有解的充要条件是,存在某一种\(a\)的顺序,使得\(b......
  • VScode插件配置
    前言统计,并记录一下自己的VScode的相关配置,便于更换电脑的时候能够快速配置好开发环境。虽然VScode可以同步账号配置,但是如果电脑相关环境地址不同的化,还是需要重新配置一下。所以这里记录一下如何配置。①koroFileHeader插件配置插件介绍VSCode插件:用于一键生成文件头部......
  • Codeforces Round 781 (Div. 2) E. MinimizOR (可持久化字典树)
    传送门题目大意:  T组测试数据每组测试数据先输入一个n表示有一个长度为n的一维数组,然后输入n个数字表示这个一维数组。紧接着输入一个k表示有k个询问,对于每个询问会输入一个l和一个r表示询问数组中[l,r]这个区间里面任意两个下标不重复的元素最小的或(|)是多少。解题思路: ......
  • leetcode5最:长回文子串
    动态规划:1个回文串,两边加上同样的字符,也是回文串。这是一个性质,之后要用。对于一大串字符,从1长度的子串开始判断。1个长度的子串,肯定回文;如果这个子串两边加上同样的字符,长度变成了3,少了一次判断。因此还要加上,判断2长度的子串是不是回文。之后才会判断3长度的子串是不是回文......
  • vscode 添加全局宏定义
    问题:利用vscode编辑代码时,设置了禁用非活动区域着色后,在一些编译脚本中配置的宏又识别不了遇到#ifdef包住的代码就会变暗色,想查看代码不是很方便。如下图:解决:在vscode中添加全局宏定义。步骤:1.ctrl+shift+p,选择对应的编辑配置,比如c/c++的,进入文件c_cpp_properties.json......
  • Codeforces Round 881 (Div
    E.TrackingSegments给定初始长度为n,且全为0的序列a,然后给出m个线段,如果一个线段中1的个数严格大于0的个数,那么该线段称为一个漂亮线段,现在给出q次操作,每次操作使得序列a中位置x上的0变为1,请你求出第一次使得所有线段中出现漂亮线段的询问题解:二分答案容易发现答案具有单......