首页 > 编程语言 >vscode c++ 编译运行配置(信息学竞赛OIer专用)

vscode c++ 编译运行配置(信息学竞赛OIer专用)

时间:2023-10-06 22:45:09浏览次数:51  
标签:exe vscode tt OIer c++ fileBasenameNoExtension fileDirname build

vscode c++ 编译运行 OI 专用配置

在你的文件夹下建立一个名为 \(\tt .vscode\) 的文件夹。

目录是这样的:

\(\tt .vscode\)
\(\tt |--c\_cpp\_properties.json\)
\(\tt |--launch.json\)
\(\tt |--tasks.json\)

\(\tt .vscode/c\_cpp\_properties.json\)

{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${default}"
            ],
            "windowsSdkVersion": "10.0.19041.0",
            "compilerPath": "C:/MinGW/bin/g++.exe",
            "cStandard": "c17",
            "cppStandard": "c++17"
        }
    ],
    "version": 4
}

\(\tt .vscode/launch.json\)

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "编译",
            "type": "cppvsdbg",
            "request": "launch",
            "program": "cmd",
            "args": [
            "/C",
            "g++",
            "${fileDirname}\\${fileBasenameNoExtension}.cpp",
            "-o",
            "${fileDirname}\\${fileBasenameNoExtension}.exe",
            //"&",
            //"pause"           
            ],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "console":"internalConsole"
        },
        {
            "name": "运行",
            "type": "cppvsdbg",
            "request": "launch",
            "program": "cmd",
            "args": [
            "/C",
            "${fileDirname}\\${fileBasenameNoExtension}.exe",
            "&",
            "pause"           
            ],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "console":"newExternalWindow"
        },
        {
            "name": "编译运行",
            "type": "cppvsdbg",
            "request": "launch",
            "program": "cmd",
            "args": [
            "/C",
            "g++",
            "${fileDirname}\\${fileBasenameNoExtension}.cpp",
            "-o",
            "${fileDirname}\\${fileBasenameNoExtension}.exe",
            "&",
            "${fileDirname}\\${fileBasenameNoExtension}.exe",
            "&",
            "pause"           
            ],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "console":"newExternalWindow"
        }
    ]
}

\(\tt .vscode/tasks.json\)

{
	"version": "2.0.0",
	"tasks": [
		//build task
		{
			"type": "shell",	//任务类型是shell或者process
			"label": "build",	//任务名称,run task中就是根据名称来运行不同任务的
			"command": "g++",	//使用g++编译C++程序,前提是添加了g++的环境变量
			"args": [	//g++命令的参数
				"-g",	//-g是添加调试信息
				"${file}",	//${file}是一个引用,表示当前文件位置
				"-o",	//-o表示目标程序
				"${fileDirname}\\${fileBasenameNoExtension}.exe"
			],
			"problemMatcher": [
				"$gcc"
			],
			"group": {	//要添加到的任务组,支持build或者test。一个任务组可以包含多个任务
				"kind": "build",
				"isDefault": true
			},
		},
		//test(run) task
		{
			"type": "shell",
			"label": "run",
			"command": "${fileDirname}\\${fileBasenameNoExtension}.exe",	//表示当前的可执行程序
			"dependsOn": "build",	//依赖的任务,要先执行build任务生成可执行文件,才能运行。
									//如果每次都在之前手动运行了build任务,就不需要这个依赖了
			"problemMatcher": [
				"$gcc"
			],
			"group": {
				"kind": "test",	//在测试任务组中,在命令行中输入run test task也可以运行
				"isDefault": true
			},
			"presentation": {	//结果表示
				"echo": true,	//是否输出相关结果信息
				"reveal": "always",	//是否显示终端面板,always表示总是显示
				"focus": false,	//面板获取键盘输入的焦点
				"panel": "shared",	//在新的面板输出信息,选择share会和其他结束了的任务共享面板
				"showReuseMessage": true,
				"clear": false	
			}
		
		}
	]
}

最后按Ctrl+P输入debug 选择 编译、运行、编译运行 中需要的一个即可。

标签:exe,vscode,tt,OIer,c++,fileBasenameNoExtension,fileDirname,build
From: https://www.cnblogs.com/sunskydp/p/17745217.html

相关文章

  • windows下vscode连接linux(虚拟机)进行(伪)远程开发
    免责声明本文乃至本系列是对网络上传播的内容进行整理以梳理流程,且因为篇幅限制会精简内容,适合面向具有计算机类基础知识的人群,本文内容较为笼统,只有大体上的逻辑,具体的细节肯定是官网上写的准而全,望读者能从官网上获取最新的信息,而不是这一篇参考性流程开源声明本文章遵......
  • C++将角度转为复数
    1.角度转复数,使用std::polar#include<iostream>#include<complex>#include<cmath>intmain(){floattheta=45;floattheta_pi=theta*(M_PI/180);std::cout<<"is"<<std::polar(1.0f,theta_pi)<<......
  • 十四天学会C++之第四天(面向对象编程基础)
    类和对象是什么?在C++中,类是一种用户定义的数据类型,它可以包含数据成员(也就是属性)和成员函数(也就是方法)。类是一种模板或蓝图,用于创建具体的对象。对象是类的实例,它是根据类的定义创建的,可以用来表示现实世界中的各种事物。对象具有类定义的属性和行为。面向对象编程思想面向对象编......
  • Vscode中注释变成繁体的解决方法
    文章底部有个人公众号:热爱技术的小郑。主要分享开发知识、有兴趣的可以关注一下。为何分享?踩过的坑没必要让别人在再踩,自己复盘也能加深记忆。利己利人、所谓双赢。热爱技术的小郑前言代码中的注释变成繁体字了、归根到底是由于字体的编码格式造成。前一段时间打开Eclipse项目的时......
  • 对Oier的几点思考
    最近有机构负责人和我聊起,什么样的学生学校更欢迎?作为信息学竞赛教练,从信息学竞赛的角度出发聊聊这个问题。一、 情绪稳定情绪首先大致分为两类:积极情绪和消极情绪。积极情绪能带来健康,拓宽人的思维。所以我们常常看到许多在家长老师眼中非常活泼甚至调皮的孩子学业成绩也很不......
  • C++断言之assert和static_assert的区别
    C++断言之assert和static_assert的区别参考链接:c++11:static_assert与assert_夜夜夜夜-CSDN博客_static_assert断言分为动态断言和静态断言2种。c++11引入了static_assert关键字,用来实现编译期间的断言,叫静态断言。1.static_assert静态断言static_assert(常量表达式,要提示......
  • C++ 信号
    信号概念信号是Linux进程间通信的一种机制,是软件层次上对中断的一种模拟,用在进程之间的传递消息。来源内核产生内存错误,除0错误等由其他进程产生,传递给目标进程kill信号自定义信号:SIGURG硬件产生键盘处理方式发送阶段内核将信号放到对应的pendi......
  • C++算法之旅、08 基础篇 | 质数、约数
    质数在>1的整数中,如果只包含1和本身这两个约数,就被称为质数(素数)866试除法判定866.试除法判定质数-AcWing题库\(O(n)\)boolisprime(intx){if(x<2)returnfalse;for(inti=2;i<x;i++)if(x%i==0)returnfalse;returntrue;......
  • 14_C++对c的扩展
    c++对c的扩展::作用域运算符::使用全局变量usingnamespacestd;inta=10;voidtest01(){inta=20;cout<<a<<endl;//20cout<<::a<<endl;//10}命名空间namespacenamespace和c语言中static只在本源文件中有效差不多命名空间使用语法创建一......
  • C++ 数据结构插入效率学习
    转自:https://blog.csdn.net/breaksoftware/article/details/829478381.总结在头部插入。元素数量>15k时,效率unordered_set>set,unordered_map>map。元素数量<1024时,效率unordered_set>set,map> unordered_map。元素数量<256时,效率unordered_set>set,map> unorder......