C++在vscode中的多文件编程问题解读
作者:_ccd_yuan_ 发布时间:2021-06-14 13:37:04
C++在vscode中的多文件编程
相信有很多的小伙伴在一开始的时候,都会对vscode的多文件编程有很多的疑问,网上也有很多的教学,不过网上的解决方法都会对一些json文件进行修改,或者使用cmake写命令来操作,不过即使有这么多的教学我也还是没有完全学会。
所以今天我将给大家介绍一种方法可以不用修改json或者使用cmake就能够实现vcsode中C++的多文件操作。
首先我们需要创建几个需要的文件,比如main.cpp 、my_swap.h(这里就用my_swap来做例子)注意我们不需要my_swap.cpp
然后输入代码
main.cpp
#include <iostream>
#include "my_swap.h"//需要包含的头文件,可包含多个using namespace std;int main()
{
int a=2,b=1;
cout<<"a="<<a<<" "<<"b="<<b<<endl;
my_swap(a,b);
cout<<"a="<<a<<" "<<"b="<<b;
return 0;
}
my_swap.h
#pragma oncevoid my_swap(int &a,int&b)//直接将函数定义写入
{
int t=a;
a=b;
b=t;
}
如果大家是要写类的话,可以将函数定义写在class中,也可以写在class外(在同一个头文件中)
结果展示
同样也支持调试哟
vscode编译多个C++文件
tips:
launch.json中的preLaunchTask对应的是task.json中的label,两个名字一样,也就是说,运行launch.json文件之前,需要首先运行task.json文件,将cpp文件编译链接成.exe的可执行文件,launch.json通过"program": “{fileDirname}\${fileBasenameNoExtension}.exe”,直接进入编译链接后的可执行文件main.exe。
launch.json:
task.json:
问题
VScode编译多个Cpp文件时,报错显示找不到关联文件。
解决方法
需要修改task.json文件。
可以先在当前文件目录下新建一个out文件,这样生成的.exe可执行文件就都存在这个目录下,不会和.cpp文件混在一起,目录结构更清晰。这时候需要同时修改launch.json文件。
文件目录如下:
task.json:
"args": [
"-fdiagnostics-color=always",
"-g",
// 编译单个文件
// "${file}", // 只能编译一个文件
// "-o",
// "${fileDirname}\\out\\${fileBasenameNoExtension}.exe" // 这里的out文件需要新建
// 编译多个文件
"${fileDirname}\\*.cpp", // 只需要修改这一行,编译链接所有的cpp文件
"-o",
"${fileDirname}\\out\\${fileBasenameNoExtension}.exe", // 这里也有out文件
],
launch.json:
"program": "${fileDirname}\\out\\${fileBasenameNoExtension}.exe", // 添加out文件
来源:https://blog.csdn.net/m0_66230497/article/details/122374106


猜你喜欢
- Android 中Volley二次封装并实现网络请求缓存Android目前很多同学使用Volley请求网络数据,但是Volley没有对请求过
- java.sql.Timestamp(时间戳)继承父类:java.util.Date所有已实现的接口:Serializable, Clone
- 接口可以声明事件。 下面的示例演示如何在类中实现接口事件。 这些规则基本上都与实现任何接口方法或属性时的相同。在类中实现接口事件在类中声明事
- 1)如何获得MediaPlayer实例:可以使用直接new的方式:MediaPlayer mp = new MediaPlayer();也可
- C#是一门强类型语言,一般情况下最好避免将一个类型转换成另一个类型,但是有些时候又不得不进行类型转换,那么就出现几种强转方式。1. 括号强转
- 本文实例讲述了C#实现的海盗分金算法。分享给大家供大家参考,具体如下:海盗分金的故事5个海盗抢到了100颗宝石,每一颗都一样的大小和价值连城
- Zipkin是一种分布式跟踪系统。它有助于收集解决微服务架构中延迟问题所需的时序数据。它管理这些数据的收集和查找。Zipkin的设计基于&n
- 为了实现自定义的Menu和ContextMenu效果,下面演示代码通过派生ProfessionalColorTable类,在自定义的类中重写
- iOS定位 - 普通定位(没有地图) - 反地理编码(得到具体位置),下面通过代码给大家详解,代码如下:#import <CoreLo
- 前面的文章有讲到微信的一系列开发文章,包括token获取、菜单创建等,在这一篇将讲述在微信公众平台开发中如何获取微信用户的信息,在上一篇我们
- 例子一,获取三小时前的记录public static DataTable Query(){const string sSql = "
- C#编写的简单数字图像处理程序,数字图像处理的平时成绩和编程作业竟然占50%,那就把最近做的事写个札记吧。先放个最终做成提交的效果看看:1.
- 前言我们会使用git来保存我们项目的配置文件,但是文件中总有一些敏感数据,对于这些敏感数据我们通常需要给它加密,加密通常有两种加密方式,一种
- github开源项目(Zxing)demo最快的调用Zxing方法1.关联第三方库2.调用基础的扫码3.获取返回值具体代码如下://1.默认
- 推荐教程IntelliJ IDEA 2020最新激活码(亲测有效,可激活至 2089 年)最新idea2021注册码永久激活(激活到2100
- 今天从网上找了个例子实现了语音识别,个人感觉挺好玩的,就把代码贴出来与大家分享下: &nbs
- SpringMVC重定向model值的获取1、步骤一:在控制器中编写/*重定向测试*/@RequestMapping("/m1/t
- 一 前言redis在分布式应用十分广泛,本篇文章也是互联网面试的重点内容,读者至少需要知道为什么需要分布式锁,分布式锁的实现原理,分布式锁的
- 废话不多说,上代码String basePath = request.getScheme()+"://"+request
- 分页插件  MP中自带了分页插件的功能,只需要在配置类中进行简单的配置即可使用分页的相关功能。分页插件常