前期安装准备

安装VScode、cmake、mingw32 (具体版本如下)

VSCodeUserSetup-x64-1.78.0.exe

cmake-3.26.3-windows-x86_64.msi

x86_64-8.1.0-release-posix-seh-rt_v6-rev0.7z

将这几个的bin目录加入系统环境变量(右击此电脑,属性,高级,环境变量,Path,编辑,新建)

VScode扩展插件安装:

  1. C/C++ v1.8.4(此插件需要注意版本)
  2. Chinese(中文简化)(选择性安装,要熟悉一点英文)
  3. C/C++ Extension Pack v1.3.0
  4. C/C++ Project Generator v1.2.11
  5. C/C++ Themes v2.0.0
  6. CMake v0.0.17
  7. CMake Tools v.1.14.31
  8. Code Runnner v0.12.0
  9. Makefile Tools v0.7.0

新建一个项目和main.cpp

#include<iostream>
using namespace std;void swap(int& a,int& b)
{int temp;temp=a;a=b;b=temp;
}int main()
{int val1=18;int val2=20;cout<<"Before swap"<<endl;cout<<"val1="<<val1<<endl;cout<<"val2="<<val2<<endl;swap(val1,val2);cout<<"After swap"<<endl;cout<<"val1="<<val1<<endl;cout<<"val2="<<val2<<endl;
}

基于g++命令,编译单文件,生成带调试信息的可执行文件,并调试

g++ -g main.cpp -o my_single_swap

-g:代表生成可调试的.exe文件

-o:生成.exe文件名为my_single_swap.exe

更改项目分支,将swap函数单独拎出来

├── include

│ └── swap.h

├── swap.cpp

└── main.cpp

swap.cpp文件内容

#include "stdio.h"
void swap(int& a,int& b)
{int temp;temp=a;a=b;b=temp;
}

swap.h头文件里内容,声明交换函数

void swap(int& a,int& b);

main.cpp文件内容

#include<iostream>
#include "stdio.h"
using namespace std;
int main()
{int val1=18;int val2=20;cout<<"Before swap"<<endl;cout<<"val1="<<val1<<endl;cout<<"val2="<<val2<<endl;swap(val1,val2);cout<<"After swap"<<endl;cout<<"val1="<<val1<<endl;cout<<"val2="<<val2<<endl;
}

基于g++命令,编译多文件,生成带调试信息的可执行文件,并调试

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

可能会报错,没有swap.h库,通过-I包含include文件夹

g++ -g .\main.cpp swap.cpp -I include -o my_single_swap

若项目构建方式不同,需要相应更改命令,比如swap.cpp,main.cpp放在src文件夹下

g++ -g .\src\main.cpp .\src\swap.cpp -I include -o my_single_swap

输入命令行时学会用 tab自动补全功能,代码编写:ctrl+"/"注释,shift+alt+向上或向下箭头复制行代码,ctrl+shift+p:打开面板platte

基于Cmake(相当于将g++命令集成与CMakeLists.txt文本中)

构建CMakeLists.txt(注意大小写)

├──CMakeLists.txt

├── include

│ └── swap.h

├── swap.cpp

└── main.cpp

CMakeLists.txt里的内容:

project(Myswap) //项目名
include_directories(include)//包含库文件,针对找不到swap.h问题
add_executable(my_swap main.cpp swap.cpp)//基于main.cpp, swap.cpp生成my_swap.exe

通过Cmake生成可执行文件,进行多文件编译并调试

  1. 输入ctrl+shift+p,选择cmake:Configure,选择g++(选定编译器)

  2. 打开终端,new terminal,输入以下命令

mkdir build(新建文件夹)
cd ./build(切换至build文件夹)
cmake .. -G "Unix Makefiles"(Ubuntu环境下)
cmake .. -G "MinGw Makefiles"(Win环境下)
cmake ..(生成Makefile文件)
mingw32-make.exe(运行生成.exe文件)

输入命令后,分支结构为:

├──build

│ └── Makefile

│ └── my_swap.exe

│ └── .cmake

│ └── CMakeFiles

│ └── cmake_install.cmake

│ └── CMakeCache.txt

│ └── compile_commands.json

├── include

│ └── swap.h

├──CMakeLists.txt

├── swap.cpp

└── main.cpp

配置json

launch.json-- for debug

tasks.json – for build before debug

用g++或cmake生成可执行文件后,点击run,start debugging(F5),选择C++(GDB/LLDB),选择调试的环境g++.

此时会生成 .vscode文件夹

├── .vscode

│ └── launch.json

│ └── tasks.json

launch.json需要注意两个地方

-1- “program”:对应生成的.exe文件

-2- “preLaunchTask”: “C/C++: g++.exe build active file” 需要与task.json里的label位置对应

-3- “args”: [],对应main.cpp里的

int main(int argc,char* argv)

tasks.json需要注意两个地方

“args”: [
“-fdiagnostics-color=always”,
“-g”,
“ f i l e " , " − o " , " {file}", "-o", " file","−o","{fileDirname}\${fileBasenameNoExtension}.exe”
],
args对应输入的g++命令

launch.json里的preLaunchTask代表先进行build,对应tasks.json的label,它依赖于cmake、make两个子task.

label:cmake对应的command是
cmake .. ,

label:make对应的command是mingw32-make.exe,
即对应cmake生成可调式文件的两条命令。

VScode 中运行C++,并用g++命令、CMake、配置launch.josn和tasks.json来运行和调试可执行文件相关推荐

  1. 安装python环境与运行_专栏G|轻松学Python01:Python环境搭建与运行

    原标题:专栏G|轻松学Python01:Python环境搭建与运行 | Cora编撰 | 和[PM10分男人]一起成长 Python是一个开源且功能强大的解释型语言,应用领域比较广泛,如今越来越受重视 ...

  2. VSCode中针对C语言的代码格式化配置

    默认格式化工具 打开设置(Ctrl + ,) ,选择"用户"配置,找到"文本编辑器" - "Default Formatter": 安装了C ...

  3. vscode中设置用cnpm安装包

    安装node 首先去node.js官网安装node. 查看node版本与安装路径 查看node版本(node -v),确保安装 查看node安装路径:where node 管理全局(-g)安装的包 在 ...

  4. VSCode中ESLint插件修复+配置教程

    文章目录 vscode+eslint插件+配置教程 如果不好用 排查1: 如果出现后面回车符问题 排查2: 保存时好了但是一瞬间代码又回来了 排查3: 右下角是否开启eslint服务 排查4: 如果保 ...

  5. 关于VSCode中工作区的讲解与使用工作区还你一个轻量 的VSCode

    VSCode的使用率在逐渐提高,但安装太多的插件会使得VSCode变得臃肿,甚至运行变慢,占用太多内存,此文章介绍了工作区,并如何来使用工作区更好地体验VSCode. 初次使用VSCode,肯定有很多 ...

  6. 【转】VScode tasks.json和launch.json的设置

    转自:VScode tasks.json和launch.json的设置 - 知乎 目录 C++(方法1:不使用VSCode插件,较繁琐) C++(方法2:使用Native Debug插件) C++(方 ...

  7. Linux——从命令行配置网络、编辑网络配置文件

    一.网络管理概念:: 网络管理(Networkmanager)是监控和管理网络设置的守护进程,命令行和图形工具与networkmanager通信,并将配置文件保存在/etc/sysconfig/net ...

  8. 下载安装Go SDK、命令运行及在Vscode中运行第一个HelloWorld

    文章目录 下载安装Go SDK.命令运行及在Vscode中运行第一个HelloWorld 1.下载Go SDK 2.安装Go SDK 3.go version验证成功 4.go env查看配置信息 5 ...

  9. vscode 中C++运行编译运行多文件问题总结

    来源链接:https://blog.csdn.net/weixin_38260878/article/details/101049070?depth_1-utm_source=distribute.p ...

最新文章

  1. 分布式锁的Redis实现
  2. python索引右往左_[Python笔记]序列(一)索引、分片
  3. go使用grpc实现异步_(python、go)基于ETCD的gRPC分布式服务器实现详解
  4. 使用srvany.exe将任何程序作为Windows服务运行
  5. java高级教程_高级Java教程
  6. 看完这些美食海报,你是不是又有灵感了?
  7. java 线程等待队列_Java多线程学习(五)——等待通知机制
  8. Python生成舒尔特的Excel表格
  9. 接收机抽取的Matlab仿真代码,接收机的MATLAB仿真程序代码
  10. PX4源码学习一--Pix和APM的区别
  11. (转帖)Spring循环依赖的解决办法
  12. GBA的内存其实很大
  13. JS验证身份证号地区码及最后一位校验码
  14. 数学历史上的三次危机
  15. 关于MFC模态对话框dlg.DoModal()返回-1的可能原因
  16. 微信小程序实现tab选中(特殊圆角)样式
  17. u盘安装windows,提示缺少所需的CD/DVD驱动器设备驱动程序,无法打开install.wim,U盘fat32和ntfs之间转换
  18. 区块链公司谈区块链技术最新应用
  19. Least Recently Use(LRU的简单实现)
  20. JMeter之接口测试——主要元件介绍

热门文章

  1. geotools中等值面的生成与OL3中的展示
  2. mahout第一篇-----Mahout学习路线图
  3. 同时安装 瑞星、金山、腾讯、百度和360这五大杀毒软件
  4. SpringBoot与MongoDB的集成使用
  5. 联通电信校园促销加码 策略更隐蔽
  6. python爬取pexels网站图片
  7. 基于Hexo和Github搭建博客
  8. xshell和xftp免费使用方法
  9. 转载 | 深度学习中的遥感影像数据集
  10. 生信软件c语言,科学网—[转载]没有docker我真的不想动这样的生信软件 - 张成岗的博文...