Visual Studio Code 构建C/C++开发环境
转自: https://blog.csdn.net/sqlaowen/article/details/54645241
最近有消息说,编程将是有史以来最好的工作,可是辗转于于各大主流操作系统的码农们都知道,作为一个程序员尤其是多种语言程序员,会因为开发环境而感到苦恼,传统的SourceInsight又贵又老还不跨平台,Eclispe在性能方面不尽人意,Visual Studio 又大又不跨平台,Vim, Emacs由于门槛和视觉原因又不是所有人都用得习惯,还有一些类似SublimeText, Atom, SciTe, Notepad++等等,由于各种性能是否开源是否可扩展都让程序员各种犹豫,直到VS code从天而降,带着微软Visual Studio强大的智能却又极小的体积,开源跨平台可扩展的流行,踏入编辑器的战场,感觉,要变天了。所以容小农来介绍下Visual Studio Code的初步使用方法:
Visual Sutdio Code以及C/C++插件安装
- 安装VS Code:请打开官网 https://code.visualstudio.com/ 下载编辑器,并一路默认安装。
- 安装cpptools插件(安装方式有两种,任选一种,一种是点击VS code的插件图标调出查找插件窗口然后搜索cpptools,另一种是Ctrl+p 调出VS code的shell,输入ext install cpptools),用于代码分析,编辑提示等等,具体可以参考介绍:https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools
- 安装 code runner插件,可以动态运行选中的代码区块,详细介绍:
https://marketplace.visualstudio.com/items?itemName=formulahendry.code-runner - 安装 native debug 插件,用于gdb图形化调试你的C/C++程序,详细参考:
https://marketplace.visualstudio.com/items?itemName=webfreak.debug - 重启VS code,
安装完以上插件后,重启VS code,让安装的插件生效。
Visual Studio Code 和GCC共同调试C/C++程序
安装GCC工具链
- 安装C/C++ 的 GCC 工具链,windows上可以安装cygwin或者MinGW, linux/os x如果默认未安装,那安装也非常简单,根据使用的版本网上搜索相应的命令行即可。
Cygwin 下载安装网址: https://cygwin.com/install.html
MinGW 下载安装网址:http://mingw.org/
这里以cygwin为例,注意选择适合你电脑系统的安装文件,64位系统请选择x86_64对应的安装文件。具体安装过程可以自己百度,注意点是,安装时,一定要选中 gcc, g++, gdb, make 等开发工具包。1):首先去网站 www.cygwin.com 下载 Cygwin 的 Windows系统的安装包,32位系统下载steup-x86.exe,64位系统则下载steup-x86_64.exe,界面如下。
2):双击下载好的Cygwin安装包,出现下面界面,点击下一步。
3):之后出现如下界面,默认为第一个选项,意思是从网络下载并安装(从官网下载的不是完整安装包,只是安装引导程序),第二个选项是仅仅下载不安装,第三个则是从本地安装(意思是已经下载好了需要的安装文件)。我还没有下载好文件,并且要安装,所以选择默认第一项,之后点击下一步。
4):在这里选择安装目录,一般要有一个专门用来作开发工具的安装目录,我这里在为C:\Develop,并在此文件下新建用来安装Cygwin的目录,所以总的目录为C:\Develop\MinGW。选择所有用户,之后点击下一步。
5):这里要为将要下载的安装包选择存放位置,我选择在C盘的下载目录。选择好后点击下一步。
6):选择默认,点击下一步。
7):闪过一个页面之后出现如下界面,选择蓝色的网址,这是国内中科大的镜像站,所以网速较快,东北地区的也可以选择上面那一个,是大连东软学院的镜像站,隔得较近,应该比中科大的快。
8):在这个页面之后,就是最重要的一个地方了,会自动进入下一步。
9):在画红线处分别搜索 gcc-core、gcc-g++、make、gdb、binutils,以上所有项目都在 devel 文件夹下。
原本的 5.3.0-5 位置也是 Skip,在点击一次之后,出现如下界面即可,其他的也一样。
gcc-core
gcc-g++
make
gdb
binutils
10):之后点击左下角的下一步。
11):这里检查要安装的项目,和上面选择的是不一样的,增加了许多相关的文件,不好检查,不过一般没问题,所以直接点击下一步。
12):此时开始下载并安装Cygwin,时间稍微久一点。
13):根据需要是否在桌面(第一项)和开始菜单(第二项)创建快捷方式,因为我不常用终端模式,但有时候可能需要,所以只选择第二项,点击完成。
调试C/C++程序
- 在操作系统中新建一个工程目录,如 “hello”,然后启动vs code,打开这个空目录:
用vs code 在hello目录新建一个源文件 hello.c:
文件内容如下:
#include <stdio.h>
int g_var = 0;
void print_line(char *str)
{
if (str != NULL)
printf("%s\r\n", str);
else
printf("null string\r\n");
}
int main (int argc, char **argv)
{
int l_var = 1;
print_line("hello world!");
printf("g_var = %d, l_var = %d.\r\n", g_var, l_var);
return 0;
}
*3. 添加头文件索引路径。在hello.c中,你会发现include头文件那一行下面有绿色的波浪线,代表vs code的cpptools插件找不到相应路径,将鼠标移到这一行点击。
左边会出现一个提示的黄色小灯泡符号,点击它,然后点击“Add include path to settings”按钮, 将生成并打开一c_cpp_properties.json 文件,编辑这个json文件,添加c/c++头文件的路径进去:
这里cygwin的头文件路径为: “C:/cygwin/usr/include/*”,将它添加到”includePath”这个变量中。
4. 设置编译构建环境。
在vs code中点击hello.c回到hello.c文件,调用快捷键 Ctrl+Shift+B 构建可执行文件。
此时vs code会报错,在vs code的顶栏显示“No task runner configured”,你只需要点击右边的蓝色按钮“Configure task runner”来生成编辑task.jason即可:
点击后,在弹出的选择栏中选择”Others“:
选择后会创建并打开一个task.jason的配置文件, 修改其中的command 和 args变量并保存:
"command": "gcc ",
"args": ["-g", "${file}", "-o", "${workspaceRoot}/hello.exe"],
- 1
- 2
*5. 构建hello.exe。
直接快捷键 Ctrl+Shift+B将hello.c编译构建为hello.exe,
这时你会发现vs code的左边栏中多了一个hello.exe文件。
6. 运行和调试hello.exe。
快捷键 Ctrl+Shift+D 或者点击左边Debug按钮调出debug窗口。
按快捷键F5准备调试这个程序,此时会弹出选择debug的环境,选择 “GDB”即可。
之后会创建并打开launch.jason配置文件,修改一下“target”这个变量内容为”./hello.exe”:
使用gdb调试,添加监控变量(在WATCH栏中添加变量名)和断点(鼠标在hello.c的左边栏点击显示红色即可添加断点),如:
快捷键F5运行调试,运行到断点后观察左边DEBUG栏目中显示的各种信息,然后
继续按绿色按钮(或快捷键F5)继续运行,如:
点击右下方DEBUG输出栏中的 ”DEBUG CONSOLE” 将看到程序运行时打印的信息:
7. 至此,一个简单的在WINDOWS上用VS Code编辑和调试C程序的例子完毕。
Visual Studio Code编辑时的常用快捷键
| 快捷键 | 作用 |
|---|---|
| F1或Ctrl+Shift+P | 打开VS Code的命令Shell |
| Ctrl+P | 打开VS code文件/符号查询窗口,输入”>”可以进入F1同样的Shell |
| Ctrl+Shift+O | 查找符号,函数,属性 |
| Ctrl+G | 跳转到某行 |
| Ctrl+[ | 代码缩进 |
| Ctrl+] | 代码往前移进 |
| Ctrl+F | 查找文本 |
| Ctrl+H | 查找替换 |
| Ctrl+Shift+F | 整文件夹中查找 |
| Ctrl+ + | 放大文本 |
| Ctrl+ - | 缩小文本 |
| Ctrl+ Home | 移动到文件头 |
| Ctrl+ End | 移动到文件尾 |
| Ctrl+ Tab | 在多个文件之间切换 |
| Ctrl+ / | 注释/解注释鼠标选中的代码块 |
| Ctrl+ \ | 切分当前窗口 |
| Ctrl+ N | 新建文件 |
| F12 | 跳转到变量,函数,类型定义 |
| Alt+鼠标点击 | 连续选中多个文本,同时编辑 |
| Alt+F12 | 查找所有对当前变量,函数,类型的引用 |
| Alt+<-方向键 | 跳回到上一视图 |
| Alt+上下方向键 | 上下移动当前光标所在行 |
| Shift+Alt+上下方向键 | 向上/向下复制一行 |
| Ctrl+Enter | 在当前行下边插入一行 |
| Ctrl+Shift+Enter | 在当前行上方插入一行 |
| Alt+Shift+鼠标左键 | 列编辑 |
| Shift+Alt+F | 代码格式化 |
Visual Studio Code官方资源
编辑C++文件: http://code.visualstudio.com/docs/languages/cpp
写VS Code扩展插件:https://code.visualstudio.com/docs/extensions/example-hello-world
Visual Studio Code 构建C/C++开发环境的更多相关文章
- 【转载】Visual Studio Code 构建 C/C++ 开发环境
https://www.cnblogs.com/XieSir/articles/8288051.html 1. 安装 MinGW Distro / MinGW / GNU GCC 中的任何一款,( W ...
- Visual Studio Code中配置GO开发环境
在Visual Studio Code中配置GO开发环境 一.GO语言安装 详情查看:GO语言下载.安装.配置 二.GoLang插件介绍 对于Visual Studio Code开发工具,有一款优秀的 ...
- Visual Studio Code搭建NodeJs的开发环境
一.Visual Studio Code搭建NodeJs的开发环境 1.下载安装NodeJs并配置环境变量 可以参考:NodeJs的安装和环境变量配置 2.下载安装 VS Code编辑器 可以参考:V ...
- 在Visual Studio Code中配置GO开发环境
一.GO语言安装 详情查看:GO语言下载.安装.配置 二.GoLang插件介绍 对于Visual Studio Code开发工具,有一款优秀的GoLang插件,它的主页为:https://github ...
- windows通过Visual Studio Code中配置GO开发环境(转)
一.GO语言安装 详情查看:GO语言下载.安装.配置 二.GoLang插件介绍 对于Visual Studio Code开发工具,有一款优秀的GoLang插件,它的主页为:https://github ...
- Visual Studio Code 搭建 C/C++开发环境方法总结
之前看错资料踩了不少坑,先将可行经验总结如下: 1. 下载 Visual Studio Code 并安装.地址:https://code.visualstudio.com 2. 安装 C/C++插件与 ...
- Cocos发展Visual Studio下一个libcurl图书馆开发环境的搭建
我们解释win32在Visual Studio下一个libcurl图书馆开发环境的搭建.Cocos2d-x发动机实际上与Win32在访问libcurl库.Cocos2d-x 3.x在libcurl库文 ...
- Visual Studio Code (vscode) 配置 C / C++ 环境
Visual Studio Code (vscode) 配置 C / C++ 环境 昨天突发奇想,想使用vscode配置C++环境,因为不想下载 Dev OR codeblock,然后借助了很多网上教 ...
- Visual Studio Code中C/C++的环境配置
Visual Studio Code 的功能十分强大,但是对我这种小白不是很友好,它和其它的集成开发工具不同,Visual Studio Code (以下简称VS)自身其实仅仅是一个编辑器, 是不具备 ...
随机推荐
- poj1258 Agri-Net(Prime || Kruskal)
题目链接 http://poj.org/problem?id=1258 题意 有n个农场,现在要在n个农场之间铺设光纤使得n个农场连接起来,求铺设光纤的最短距离. 思路 最小生成树问题,使用Prime ...
- caffe 如何训练自己的数据图片
申明:此教程加工于caffe 如何训练自己的数据图片 一.准备数据 有条件的同学,可以去imagenet的官网http://www.image-net.org/download-images,下载im ...
- 【GO基础】神奇的iota特殊常量
最近在学习GO语言,然后发现有一个特殊常量是以前没有接触过的,比较感兴趣,这里给大家介绍一下. iota,特殊常量,可以被认为是一个可以被编译器修改的常量. 核心概念:iota在const关键字出现时 ...
- Java 内存模型基础
一.并发编程模型的两个关键问题 1. 线程之间如何通信 通信是指线程之间以何种机制来交换信息. 在命令式编程中,线程之间的通信机制有两种:共享内存和消息传递. 在共享内存的并发模型里,线程之间共享程序 ...
- gp数据库运维
最近需要将一份db2导出的历史数据入库gp集群,然后把每天的增量数据导出成txt文件和对应的log日志,再ftp传输给另外一台机器.其中陆续碰到一些坑,在此记录 历史文件数据清洗 列分隔符的选择 碰到 ...
- NetCore+Dapper WebApi架构搭建(六):添加JWT认证
WebApi必须保证安全,现在来添加JWT认证 1.打开appsettings.json添加JWT认证的配置信息 2.在项目根目录下新建一个Models文件夹,添加一个JwtSettings.cs的实 ...
- Power OJ 2605 SPFA+dp思想
题目链接[https://www.oj.swust.edu.cn/problem/show/2605] 题意:给出包含N(N <= 5000)个点M条边的有向图,然后求1 - N在满足距离小于T ...
- [BZOJ5287][HNOI2018]毒瘤(虚树DP)
暴力枚举非树边取值做DP可得75. 注意到每次枚举出一个容斥状态的时候,都要做大量重复操作. 建立虚树,预处理出虚树上两点间的转移系数.也可动态DP解决. 树上倍增.动态DP.虚树DP似乎是这种问题的 ...
- PHP 大神的十大优良习惯
1.多阅读手册和源代码 没什么比阅读手册更值得强调的事了–仅仅通过阅读手册你就可以学习到很多东西,特别是很多有关于字符串和数组的函数.就在这些函数里面包括许多有用 的功能,如果你仔细阅读手册,你会经常 ...
- Codeforces Round #359 (Div. 2) A. Free Ice Cream 水题
A. Free Ice Cream 题目连接: http://www.codeforces.com/contest/686/problem/A Description After their adve ...