vs code c/c++编程配置文件
2024-10-08 23:18:05
之前的C语言课程老师只讲了C没有接触C++,但是觉得C++挺重要的,而且python和java再去转exe有点麻烦,所以还是学一下C++。
问过朋友推荐了几个IDE,最后他用的是visual studio,但是我嫌太大了。我说只要代码提示和高亮就行了,朋友说vs code就行。
安装了vs code、c/c++插件、mingw-64后开始用,发现和当时学c的时候的vc++ 6.0不太一样,不能直接编译调试,还要设置相应的配置文件。
经过一番搜索后,大概理解了是怎么回事。
程序源码目录下有一个.vscode的文件夹,里面要存放各种配置文件。我目前就涉及到了两个,launch.json和tasks.json。
launch.json是用来调试并启动程序的配置文件
tasks.json是用来编译源码的配置文件(可能有其他用处,但目前我就知道他能编译源码)
其中的tasks.json如果是c那么command是gcc,如果是c++那么command是g++(我套用的可能是c的模板,然后写cpp的时候编译出现问题,改成g++就好了)
launch.json
{
"version": "0.2.0", //配置版本
"configurations": [
{
// 配置名称,在启动配置下拉菜单中显示
"name": "(gdb) Launch",
// 调试会话开始前要运行的任务
"preLaunchTask": "build",
// 配置类型
"type": "cppdbg",
// 请求配置类型,可以为启动(launch)或附加(attach)
"request": "launch",
// 将要进行调试的程序的路径
"program": "${fileDirname}/${fileBasenameNoExtension}.exe",
// 程序调试时传递给程序的命令行参数,一般设为空即可
"args": [],
// 设为true时程序将暂停在程序入口处,一般设置为false
"stopAtEntry": false,
// 调试程序时的工作目录,一般为${workspaceFolder}即代码所在目录
"cwd": "${workspaceFolder}",
"environment": [],
// 调试时是否显示控制台窗口,一般设置为true显示控制台
"externalConsole": true,
"MIMode": "gdb",
// GDB的路径,注意替换成自己的位置中的 gdb
"miDebuggerPath": "H:/mingw-64/mingw64/bin/gdb.exe",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
tasks.json
{
"version": "2.0.0",
"tasks": [
{
"label": "build",
"type": "shell",
// 编译参数 ggc -g ${file} -o ${fileDirname}${fileBasenameNoExtension}.exe
"windows": {
"command": "gcc",
"args": [
"-g",
"\"${file}\"",
"-o",
"\"${fileDirname}\\${fileBasenameNoExtension}.exe\""
]
},
// 控制台输出的错误信息
"problemMatcher": {
"owner": "cpp",
"fileLocation": [
"relative",
"." // ${workspaceFolder}
],
"pattern": {
"regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
"file": ,
"line": ,
"column": ,
"severity": ,
"message":
}
},
"group": {
"kind": "build",
"isDefault": true
},
// 终端面板配置
"presentation": {
"echo": true,
"reveal": "always",
"focus": false,
"panel": "shared" // 控制面板是否在任务中共享面板,shared=共享,new=新面板
}
}
]
}
最新文章
- vs2013单元测试第二部分
- Ansible (一)
- Hibernate不能自动建数据表解决办法
- git 使用笔记
- 【军哥谈CI框架】之入门教程之第二讲:分析CI结构和CI是怎么工作的
- Nagle算法,tcp小包组合(延迟)发送的算法
- OpenResty 反向代理的用法与技巧
- C#编写以管理员身份运行的程序
- Yii框架 多数据库、主从、读写分离
- redhat系列yum本地源配置
- Linux学习之less命令
- 十几个remote control software
- Servlet和JSP读书笔记(三)之Cookie
- (中等) POJ 2828 Buy Tickets , 逆序+线段树。
- Chrome 插件集锦
- Java Collections 源码分析
- 读汤姆大叔《JavaScript变量对象》笔记
- Oracle查询字符串数据进行排序,以及去重复
- 关于gulp-sftp上传到服务器
- Kivy 中文教程 实例入门 简易画板 (Simple Paint App):1. 自定义窗口部件 (widget)
热门文章
- DataPipeline |ApacheKafka实战作者胡夕:Apache Kafka监控与调优
- opencc介绍
- (CSDN 迁移) JAVA循环删除List的某个元素
- [QT] - 图片查看器(数码相框)#工程源码
- Spirng学习指南-第一章(完)
- php GD 和图像处理函数, 用 STHUPO.TTF 字体向图像写入文本
- Window中C++进行精确计时的方法
- Intellij IDEA最全的热键表(default keymap)
- C# vb .net图像合成-合成富文本
- 【转载】C#中double.TryParse方法和double.Parse方法的异同之处