c++ vscode 自动注释_WIN下vscode调试C/C++,从零开始生成helloworld项目【2018年6月29日】...

最近迷上了vscode这款编译器,小巧美观,用起来也很顺手,最主要的是全平台,正好最近要上手做Linux C客户端,以前没接触过linux,先拿它先在WIN上练练手。

这几天在网上找了非常多的教程,win总是配不好环境。(linux和win一起开始配的,感觉linux环境比win好配多了,下一篇博文再把linux端的配置过程分享出来,这里先写win的)。

环境:

WIN10 64 专业版

vscode版本:1.24.1

launch.json版本:0.2.0

tasks.json版本:2.0.0

mingw-w64版本:8.1.0

过程:

一、 安装vscode

vscode官网下载安装包直接安装即可

二、 vscode内安装C/C++ 插件

vscode内按快捷组合键Ctrl+Shift+X(或如图第①步点击[拓展]按钮)打开拓展分页,在搜索栏输入" C ",查找到如图的第一个插件,安装并重新加载之。

三、 安装mingw-w64(具体安装与环境变量配置可以查看这里)

在mingw-w64官网下载64位的mingw-w64在线安装包(以在线包为例)或离线包(离线包直接解压出来就能用)

在线包:根据系统选择合适的安装包进行下载,选择在线安装器

下载完成后出现如下安装包

安装该包,在Setting 界面将Architecture选项改为x86_64,其他不变,选择合适的安装路径(默认或重新指定都可以,路径中不要有中文)

配置计算机环境变量如图(我的安装路径是D:\mingw64,因此环境变量这么加)

安装完成后打开控制台,分别输入   g++ --version   和 gcc --version  查看环境是否安装成功(是否有当前版本号)

四、重启电脑(这里看了其他很多博主的没有提到,我没有重启,后来vscode代码写出来跑了很多次提示没有找到g++命令,最后重启解决)

五、运行C++代码

打开vscode,选择或新建一个空文件夹目录打开作为项目目录,新建一个test.cpp文件,键入如下helloworld代码

#include

int main(int argc, char *args[])

{

int i, j;

printf("hello world!\n");

printf("argc:%d\nargv:\n", argc);

for (i = 0; i < argc; i++)

{

printf("%d:%s\n", i, args[i]);

}

getchar();

return 0;

}

按下F5,顶部或出现如下菜单,选择C++(GDB/LLDB)

系统自动在当前目录下创建.vscode文件夹,并在其中新建一个launch.json的模版文件如下:

{

// 使用 IntelliSense 了解相关属性。

// 悬停以查看现有属性的描述。

// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387

"version": "0.2.0",

"configurations": [

{

"name": "(gdb) Launch",

"type": "cppdbg",

"request": "launch",

"program": "enter program name, for example ${workspaceFolder}/a.exe",

"args": [],

"stopAtEntry": false,

"cwd": "${workspaceFolder}",

"environment": [],

"externalConsole": true,

"MIMode": "gdb",

"miDebuggerPath": "/path/to/gdb",

"setupCommands": [

{

"description": "Enable pretty-printing for gdb",

"text": "-enable-pretty-printing",

"ignoreFailures": true

}

]

}

]

}

将该模版修改为如下(可以直接复制,并修改有注释的一段)

{

"version": "0.2.0",

"configurations": [

{

"name": "(gdb) Launch",

"preLaunchTask": "build",

"type": "cppdbg",

"request": "launch",

"program": "${fileDirname}/${fileBasenameNoExtension}.exe",

"args": [],

"stopAtEntry": false,

"cwd": "${workspaceFolder}",

"environment": [],

"externalConsole": true,

"MIMode": "gdb",

"miDebuggerPath": "D:/mingw64/bin/gdb.exe", // 这里修改GDB路径为安装的mingw64的bin下的gdb.exe路径

"setupCommands": [

{

"description": "Enable pretty-printing for gdb",

"text": "-enable-pretty-printing",

"ignoreFailures": true

}

]

}]

}

vscode中按下组合键Shift+Ctrl+P,在唤出的任务栏中键入>task,下拉找到并点击 Tasks:Configure Task(任务:配置任务)项,并在接下来的返回项中选择使用模版创建tasks.json文件

系统会自动在.vscode文件夹下创建一个tasks.json文件,自动生成的代码如下

{

// See https://go.microsoft.com/fwlink/?LinkId=733558

// for the documentation about the tasks.json format

"version": "2.0.0",

"tasks": [

{

"label": "build",

"type": "shell",

"command": "msbuild",

"args": [

// Ask msbuild to generate full paths for file names.

"/property:GenerateFullPaths=true",

"/t:build"

],

"group": "build",

"presentation": {

// Reveal the output only if unrecognized errors occur.

"reveal": "silent"

},

// Use the standard MS compiler pattern to detect errors, warnings and infos

"problemMatcher": "$msCompile"

}

]

}

同理,将之修改为如下代码(可直接覆盖)

{

"version": "2.0.0",

"tasks": [

{

"label": "build",

"type": "shell",

"group": {

"kind": "build",

"isDefault": true

},

"presentation": {

"echo": true,

"reveal": "always",

"focus": false,

"panel": "shared"

},

"windows": {

"command": "g++",

"args": [

"-ggdb",

"\"${file}\"",

"--std=c++11",

"-o",

"\"${fileDirname}\\${fileBasenameNoExtension}.exe\""

]

}

}

]

}

至此,环境配置完成,转到C++代码页,按下F5,根目录下出现.cpp文件同名的.exe文件,代码自动执行,完成。

        

六、运行C代码

仿照第五步,新建helloworld.c文件,键入或粘贴C语言的helloworld代码

#include

#include

int main() {

printf("hello world!\n");

system("pause");

return 0;

}

在.c页面内单击F5,稍候片刻出现同名.exe并自动执行,完成。

最后,感谢以下博主的博客进行参考

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/551566.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AVR单片机计算器C语言源程序,一个基于AVR单片机的计算器程序.doc

一个基于AVR单片机的计算器程序#include#include//延时函数的头文件#include // 中断函数的头文件#define uint unsigned int#define uchar unsigned char#define BIT(k) (1<#define DI PORTC //夜晶的数据输入端#define No_key 255//没有按键按下的返回值#define key_port …

python 消息框但不影响程序执行_还在用print()查找错误?日志消息不香嘛?| 原力计划...

作者 | 灰小猿责编 | 王晓曼出品 | CSDN博客最近在做项目开发的时候&#xff0c;跟小伙伴聊到修 Bug 这件事。嗯&#xff0c;对于一只没技术的程序猿来说&#xff0c;修 Bug 的确是一件让人头疼的事情&#xff0c;尤其是对于比较大型的项目开发&#xff0c;在变量较多的时候&am…

vue中传值和传引用_vue prop属性传值与传引用示例

vue prop属性传值与传引用示例vue组件在prop里根据type决定传值还是传引用。简要如下&#xff1a;传值&#xff1a;String、Number、Boolean传引用&#xff1a;Array、Object若想将数组或对象类型也以值形式传递怎么办呢&#xff1f;如下方式可以实现&#xff1a;// component-…

.sql文件_Mysql分组排序及Sql文件执行

最近在做一个临时项目&#xff0c;采用的是mysql开发&#xff0c;主要涉及两个问题&#xff1a;1.一个是传参问题&#xff1b;2.另一个是实现对数据分组取前4的数据。个人感觉很有意义&#xff0c;特此记录一下。一.传参问题执行mysql文件&#xff0c;需要从外部传入参数时&…

laravel 异常捕获_Laravel框架捕获各种类型错误

Laravel 中的所有异常都由类App\Exceptions\Handler集中处理&#xff0c;这个类有两个方法&#xff1a;report 和 render。【report 方法】report 方法用于记录异常并将其发送给外部服务。默认情况下&#xff0c;report 方法只是将异常传递给异常基类并写入日志进行记录&#x…

android 动态库 后缀,Android Robolectric加载运行本地So动态库

前言Robolectric 是 Android 的单元测试框架&#xff0c;运行无需 Android 真机环境直接运行在 JVM 之上&#xff0c;所以在 test case 运行速度效率上有了很大提升&#xff0c;接近于 Java JUnit test(JUnit test > Robolectric ≫ androidTest)。不过框架本身并不支持 so …

java web输出语句到控制台_Java工程师(6).循环结构

搞清楚循环结构语句的执行效果与使用场景。程序中的循环流程程序中的循环流程试着编写程序实现下列功能&#xff1a;在控制台中输出100个Hello字符串。在控制台中输出从 1 到 100 的数字。… …循环结构的三要素循环结构必然包含如下三要素&#xff1a;循环变量 &#xff08;循…

sap生产工单报工_SAP系统PP (ProductionPlanning) 模块知识培训

SAP系统PP(ProductionPlanning)模块知识培训主要内容为支持生产系统规范使用SAP系统开展日常业务&#xff0c;掌握SAP系统常用操作和异常处理的方法&#xff0c;人力资源部在6月10日下午组织实施了一期《SAP系统PP模块知识》的培训。本次培训由信息技术部主管工程师解虎授课&am…

android加载百分比功能,android进度条怎么显示百分比

android布局文件里的ProgressBar长形进度条怎么自 在windows操作系统下Android studio按照如下步骤自动义ProgressBar长形进度条的样式。首先创建一个android项目&#xff0c;打开其中的XML布局文件&#xff0c;如下图&#xff1a;添加ProgressBar控件&#xff0c;如下图&#…

64位程序怎么判断指针是否有效_AArch64应用程序级编程模型

根据实现选择&#xff0c;体系结构支持多级执行特权&#xff0c;由从EL0到EL3的不同异常级别表示。EL0对应于最低的特权级别&#xff0c;通常被描述为无特权。应用层程序员模型是在EL0上执行软件的程序员模型。系统软件决定异常级别&#xff0c;因此决定软件运行的特权级别。当…

n个小球放入m个盒子中_飞么盒子卫生巾自助售卖机前景

嘿&#xff0c;你有没有经历过&#xff0c;出门在外来大姨妈却没带M巾呢&#xff1f;尴尬丛生的你选择怎么做&#xff1f;现在&#xff0c;有了新选择&#xff0c;这也是今天我们迫不及待想要和你们介绍的新朋友—飞么盒子&#xff0c;由Faimes飞么品牌自主研发出品的卫生巾售卖…

Android代码设置角标,Android上的Badge,快速实现给应用添加角标

应用角标是iOS的一个特点&#xff0c;原生Android并不支持。或许是由于当时iOS的通知栏比较鸡肋(固然如今已经改进了不少)&#xff0c;而Android的通知栏功能强大&#xff1f;因此才出现了一方依赖于数字角标&#xff0c;一方坚持强大的通知栏&#xff0c;在平常使用中这两种交…

opencv模糊图像变清晰_opencv-python 4.2图像模糊

图像模糊可以去除噪音。import cv2 import numpy as npimage cv2.imread("dogcat1.jpg") cv2.namedWindow("input image", cv2.WINDOW_AUTOSIZE) cv2.imshow("input image", image)#均值模糊 dst cv2.blur(image, (5, 5)) cv2.imshow("…

datatable怎么根据两列分组_公司要IT转型,我该怎么办?用Python进行数据处理

“ 以后数据处理&#xff0c;都用pandas”01 面临问题作为运维人员&#xff0c;每周要统计很多数据&#xff0c;特别是周四写周报的时候&#xff0c;基本要花半天时间。既然已经学了Python&#xff0c;那就试试优化它。以统计不同厂家、不同设备类型告警量为例。需要将多份类似…

C语言非常大的数组,关于最大子数组问题

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼纯新手&#xff0c;最近想学一下算法&#xff0c;上网看了个教程&#xff0c;看到了一个很经典的返回最大子数组之和的问题&#xff0c;然后我想问一下我用分治法把最大和求出来了&#xff0c;但是要怎么返回子数组本身呢&#xff…

pandas尾部添加一条_Numpy与Pandas

Numpy#导入numpy包 import numpy as np ##from numpy import * #定义数组 #一维数组 anp.array([1,2,3,4]) #二维数组 bnp.array([(1,2,3),(4,5,6)]) #定义数组类型 cnp.array([(1,2),(3,4)],dtypecomplex) #array([[ 1.0.j, 2.0.j],[ 3.0.j, 4.0.j]])#数组的维数 a.shape #(…

easyexcel 在 设置标题_阿里开源(EasyExcel)

阿里开源(EasyExcel)---导出EXCEL - 请叫我猿叔叔的博客 - CSDN博客https://blog.csdn.net/qq_35206261/article/details/88579151一. 简介导出是后台管理系统的常用功能&#xff0c;当数据量特别大的时候会内存溢出和卡顿页面&#xff0c;曾经自己封装过一个导出&#xff0c;P…

android webview 劫持,安卓包风险安全监测提示存在Activity劫持、WebView远程代码执行,请问怎么解决?...

挺着急的&#xff0c;请问这个怎么解决1、Activity劫持用例名称&#xff1a;Activity劫持风险系数&#xff1a;高风险编号&#xff1a;NESUN-2016-82091, CWE-94,风险描述&#xff1a;攻击者劫持目标Activity并制造跟目标Activity界面相似度很高的界面迷惑用户&#xff0c;可能…

python爬虫获取url_Python爬虫如何获取页面内所有URL链接?本文详解

如何获取一个页面内所有URL链接&#xff1f;在Python中可以使用urllib对网页进行爬取&#xff0c;然后利用Beautiful Soup对爬取的页面进行解析&#xff0c;提取出所有的URL。什么是Beautiful Soup&#xff1f; Beautiful Soup提供一些简单的、python式的函数用来处理导航、搜索…

iview table增加一行减少一行_PQ入门函数:Table.ReplaceValue

一、基础介绍Table.ReplaceValue函数的官方说明如下&#xff1a;Table.ReplaceValue(table as table, oldValue as any, newValue as any, replacer as function, columnsToSearch as list)该函数实现的功能是将Table中的值替换成新值&#xff0c;语法翻译成汉语大致如下&#…