文章目录

  • 基于g++命令
    • 单文件编译
    • 多文件编译
  • 基于cmake
  • 配置`json`
    • launch.json
    • tasks.json

  从VSCode转到Clion,再到Xcode,再到VSCode,我可太难了。。。

基于g++命令

单文件编译

  在写好代码之后,找到VSCode的菜单栏的终端,新建一个终端,之后我们就可以在终端中对所编写的代码进行编译操作了:

  可以看到g++编译之后会生成一个a.exe文件,这里生成的a.exe文件是不包含调试信息的。并且我们可以将其命名为别的名字。通过参数控制。g++编译单文件,生成带调试信息的可执行文件、并调式:

g++ -g .\main.cpp -o my_swap

  - g参数代表生成带调试信息的可执行文件,- o表示指定输出文件名。只有生成的是带调试信息的可执行文件,才可以被调试。

  如果需要调试代码,需要去选择创建launch.json文件。步骤如下:1. 选中最左侧的运行和调试按钮。2. 点击create a launch.json file。3. 选择C++(GDB/LLDB) (因为我们选择gcc软件里面的gdb调试工具)。4. 选择g++.exe-生成和调试活动文件

之后就会生成launch.json文件,并进入调试。并且会给你生成一个与main.cpp同名的main.exe文件,也就是说编译器帮助我们做了很多事情。

  在launch.json文件中,最为关键的两条信息就是"program":"preLaunchTask":

  "program":代表的是需要调试的可执行文件。想要对一个可执行文件进行调试,首先需要去生成这个可执行文件。"preLaunchTask":表示的是调试之前需要做的工作,其实就是要去生成调试需要的可执行文件。这个生成文件的配置工作在tasks.json文件中:

多文件编译

  把swap函数放到一个头文件中声明,和一个.cpp文件中去实现。

  g++编译多文件,生成带调试信息的可执行文件、并调试:

g++ -g .\main.cpp .\swap.cpp -o my_multi_swap

  此时如果和单个文件一样,去调试的话,就会报错:preLaunchTask"C/C+ +: g+ +.exe生成活动文件"已终止,退出代码为-1.

  这是因为,想要调试多个文件,我们需要自己去配置launch.json文件和tasks.json文件。因为我们已近生成了my_multi_swap.exe文件,所以我们直接配置"program":所指定的路径即可:

  此时就能进入调试了。

  在配置单个文件的时候,VSCode都帮助我们做了生成可调试文件的工作。如果是需要编译多个文件我们需要使用g++手动编译一下,生成我们所需要的exe文件,然后修改launch.json文件,将生成的exe文件路径添加进来。

基于cmake

  cmake是一款非常好的工具,它可以帮助我们生成makefilemakefile是什么呢?如果我们需要编译一个大型的工程的话,它会帮助我们指定编译规则,但是它的makefile书写起来非常地困难。所以cmake这个工具就产生了,它能够帮助我们生成极为复杂的makefile

  如果想要将我们的工程构建为cmake工程的话,我们需要在文件主目录里面创建CMakeLists.txt

  编写最简单的CMakeLists.txt(安装cmake插件后会有智能提示):

project(MYSWAP)
add_executable(my_cmake_swap main.cpp swap.cpp)

  MYSWAP是工程名字,add_executable有两个参数,my_cmake_swap表示生成的可执行文件的名字,通过main.cpp swap.cpp这两个文件生成。ctrl shit p进入配置,输入cmake,选择下图中的第一个CMake:Configure,之后在选择GCC后面接自己的版本号的那一个即可:

  点击完之后会生成一个build文件夹,是cmake进行外部构建的一个build文件夹。

  想要通过CMakeLists.txt生成可执行文件,我们需要在终端中输入一些指令。我们需要进入刚刚生成的build文件夹下,输入cmake ..

  看到上述红色方框中出现的显示,说明说有的步骤都是正常的。之后需要输入make命令,但是windows下的makelinux下的make名字可能不一样:

building是把两个cpp编译成二进制文件,linking是把exe连接起来。

  想要拿到刚刚生成的文件进行调试的话,我们同样需要去配置launch.json文件即可:

  更多参考:

mkdir build
cd build
如果电脑上已经安装了vs,可能会调用微软MSVC编译器,使用(cmake -G “MinGW Makefiles” …)代替cmake …即可
仅第一次使用cmake时使用(cmake -G “MinGw Makefiles” …) 后面可使用(cmake …)
cmake …
ming32-make.exe // 或者是make

配置json

launch.json

  • launch.json : for debug

  代码改动之后,我们需要重新生成可执行文件,然后调试,但是我们如果一直在终端里面去生成可执行文件的话,效率就太低了。因为代码改动一次,就需要去重新生成一次可执行文件。因此我们需要将preLaunchTask打开(删除注释//),并配置其相关信息:

  ctrl shift p,输入task,选择config task可以进行模板创建:

  或者选中代码区域,右键去生成和调试活动文件。

tasks.json

  • tasks.json : for build before debug
  1. g++编译方式配置tasks.json

  command的含义就是g++,之后带两个文件的参数,然后是输出文件的路径,直接给绝对路径是最保险的:

  或者使用相对路径:

  附上launch.json

{// 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387"version": "0.2.0","configurations": [{"name": "g++.exe - 生成和调试活动文件","type": "cppdbg","request": "launch","program": "${workspaceFolder}/out.exe","args": [],"stopAtEntry": false,"cwd": "D:\\install_hezhiqiang\\MinGW\\bin","environment": [],"externalConsole": true,// "console": "externalTerminal","MIMode": "gdb","miDebuggerPath": "D:\\install_hezhiqiang\\MinGW\\bin\\gdb.exe","setupCommands": [{"description": "为 gdb 启用整齐打印","text": "-enable-pretty-printing","ignoreFailures": true}],"preLaunchTask": "C/C++: g++.exe 生成活动文件"}]
}

  附上tasks.json

{"tasks": [{"type": "cppbuild","label": "C/C++: g++.exe 生成活动文件","command": "D:\\install_hezhiqiang\\MinGW\\bin\\g++.exe","args": ["-g","${workspaceFolder}\\main.cpp","${workspaceFolder}\\swap.cpp","-o","${workspaceFolder}\\out.exe"],"options": {"cwd": "D:\\install_hezhiqiang\\MinGW\\bin"},"problemMatcher": ["$gcc"],"group": {"kind": "build","isDefault": true},"detail": "调试器生成的任务。"}],"version": "2.0.0"
}
  1. cmake方式配置tasks.json

  如果是cmake工程的话,想用task.json执行cmake的编译命令呢?task.json可以帮助我们去完成调试之前的编译工作,将其编译命令对应到task.json里面如下:

  附上launch.json

{// 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387"version": "0.2.0","configurations": [{"name": "g++.exe - 生成和调试活动文件","type": "cppdbg","request": "launch","program": "${workspaceFolder}/build/my_cmake_swap.exe","args": [],"stopAtEntry": false,"cwd": "D:\\install_hezhiqiang\\MinGW\\bin","environment": [],"externalConsole": true,// "console": "externalTerminal","MIMode": "gdb","miDebuggerPath": "D:\\install_hezhiqiang\\MinGW\\bin\\gdb.exe","setupCommands": [{"description": "为 gdb 启用整齐打印","text": "-enable-pretty-printing","ignoreFailures": true}],"preLaunchTask": "Build"}]
}

  这里要注意"program": "${workspaceFolder}/build/my_cmake_swap.exe"

  附上tasks.json

{"version": "2.0.0","options": {"cwd": "${workspaceFolder}/build"},"tasks": [{"type": "shell","label": "cmake","command": "cmake","args": [".."]},{"label": "make","group":{"kind": "build","isDefault": true},"command": "make","args": []},{"label": "Build","dependsOn":["cmake","make"]}]
}

  最后推荐大家使用cmake方式构建工程。

工具使用教程(四) 【VSCode使用教程】相关推荐

  1. 【安装教程】vscode安装教程(超详细)

    Visual Studio Code(简称 VSCode)是一款由微软开发且跨平台的免费源代码编辑器.该软件支持语法高亮.代码自动补全.代码重构功能,并且内置了命令行工具和 Git版本控制系统.用户可 ...

  2. html编写四宫格展示图片,七彩色图片排版工具一键制作四宫格图片教程

    七彩色图片排版工具是一款好用的图片排版工具.我们可以使用七彩色图片排版工具将电脑中的图片进行一键一键排版: 进入下载七彩色图片排版工具 2.1 官方版 大小:3.36 MB 日期:2019/2/25 ...

  3. electron教程(四): 使用electron-builder或electron-packager将项目打包为可执行桌面程序(.exe)

    我的electron教程系列 electron教程(一): electron的安装和项目的创建 electron教程(番外篇一): 开发环境及插件, VSCode调试, ESLint + Google ...

  4. 开发教程(四) MIP组件平台使用说明

    组件审核平台用于上传 MIP 组件.经过自动校验之后,提交审核,通过审核的组件会定时推送到线上,供网站使用. 平台地址:https://www.mipengine.org/platform/ 1. 使 ...

  5. 区块链教程(四):搭建私链、web3.js基础

    注:本教程为技术教程,不谈论且不涉及炒作任何数字货币 区块连教程(一):前置知识-linux补充 区块链教程(二):基础概念介绍 区块链教程(三):Solidity编程基础 区块链教程(四):搭建私链 ...

  6. Laravel教程 四:数据库和Eloquent

    Laravel教程 四:数据库和Eloquent 此文章为原创文章,未经同意,禁止转载. Eloquent Database 上一篇写了一些Laravel Blade的基本用法和给视图传递变量的几种方 ...

  7. maya python教程下载_[转载]技术教程-MayaPython教程四之实战篇

    其实作为一个设置或者技术指导,学习到一定程度必须要接触编程,比如Mel.Python.C++ Api等程序语言,这些教程主要是转载胡泳滨的Maya Python学习教程,现在开始第一章-MayaPyt ...

  8. 【干货】百度站长工具(资源平台)使用教程、解读

    一.百度搜索资源平台工具一览 百度搜索资源平台为开发者们提供了有助于搜索优化的各种工具与服务,包括资源提交.数据统计.搜索展现和站点优化与维护四部分. 百度搜索资源平台搜索服务板块 二.数据提交 1. ...

  9. 雨林木风工具最新万能 GHOST 系统制作教程

    雨林木风工具最新万能 GHOST 系统制作教程 本教程是本人搜集了各位前辈的的心得体会,又经历了无数次的失败.挫折,今天终于完成了自己的封装系统, 特发布出来与大家共享.   ps:如果你封装的系统想 ...

  10. LittleVGL (LVGL)干货入门教程四之制作和使用中文汉字字库

    LittleVGL (LVGL)干货入门教程四之制作和使用中文汉字字库 前言: 阅读前,请确保你至少拥有以下条件: 已实现显示API(教程一已实现, 链接:LittleVGL (LVGL)入门教程一之 ...

最新文章

  1. 初学Java——选择
  2. Loader的load方法和loadBytes方法LoaderContext参数
  3. 解析JVM内存区域组成
  4. 关于计算机网络的英语演讲稿,上网利弊的英语演讲稿范文
  5. 这个80后靠王者荣耀赚到93亿身家
  6. mysql中条件查询加排序和索引的关系
  7. mongodb 良贴
  8. 访问无偏移的谷歌地图——工具篇
  9. 西门子V20变频器Modbus通信的配置和报文
  10. 【IT职场】任正非十大特质
  11. HighNewTech:【2019WAIC世界人工智能大会】上海正式开幕——马化腾的AI深思、二马激辩AI
  12. 做统计分析课程设计时回忆的一些知识
  13. 酒水知识(六大基酒之白兰地_Brandy)
  14. 在ssd上win10和linux双系统,windows 10 ssd ubuntu hdd双系统
  15. 2020年华为杯第十七届中国研究生数学建模竞赛---回顾记录
  16. STM32的介绍及MDK
  17. 中国大陆第二家开市客将在苏州开业;世界级博物馆Fotografiska进驻亚洲落址上海|美通社头条...
  18. WPF 仿安卓手势解锁 图案解锁
  19. 全球语言标准码(ISO-639)
  20. python如何询问_python在线询问

热门文章

  1. oracle函数大全-字符处理函
  2. 如何在Windows平台下可以方便获取到android的源码?
  3. 转载:诠释Flash的职业发展道路
  4. HCIE-Security Day25:DSPN+NHRP+Mgre:实验(四)配置shortcut方式DSPN(OSPF路由协议)
  5. html 自动关机程序,Windows 自动关机/定时关机 命令 shuntdown
  6. avc水平什么意思_5个步骤切实有效地提高你的写作水平
  7. python3 鼠标定位输入及其点击实例
  8. iStack详解(一)——iStack基本原理
  9. HDOJ--1495--非常可乐(隐式图)
  10. 凑算式——第七届蓝桥杯C语言B组(省赛)第三题