您现在的位置是:首页 > 正文

适合初学者!超详细的vscode的C++自定义头文件的配置! 热门推荐

2024-02-01 01:11:55阅读 2

花了很长时间,终于找到了解决方法!!

在工程上,我们肯定会封装自定义的一些头文件和源文件,然后我们会在执行文件中调用这些封装的头文件,因此,我们在使用vscode时,需要进行一些设置,才能实现这样的需求。

在vscode,有两种情况可以实现这种需求。
首先我先写一下我的头文件sum.h,源文件sum.cpp,和执行文件coco.cpp

sum.h

#ifndef __SUM__
#define __SUM__

int sum(int a,int b);

#endif

sum.cpp

#include "sum.h"

int sum(int a, int b)
{
    int sum_add = 0;
    sum_add = a + b;
    return sum_add;
}

coco.cpp

#include <stdlib.h>
#include <iostream>
#include "sum.h"

using namespace std;

int main()
{
    int n1, n2;
 
    cout << "输入两个整数: ";
    cin >> n1 >> n2;
    cout << "sum is " << sum(n1,n2) << endl;
    

    while(n1 != n2)
    {
        if(n1 > n2)
            n1 -= n2;
        else
            n2 -= n1;
    }
    
    cout << "HCF = " << n1 << endl;
    

    system("pause");    // 防止运行后自动退出,需头文件stdlib.h
    return 0;
}

第一种方法的话就是全部放在用一个文件夹,这是最无脑的方式,所以这种方式如果遇到大工程的开发时,就会显得很乱,而且也不方便修改。
在这里插入图片描述
所以我们更建议使用第二种方法
(1)先新建三个文件夹,分别是include(存放头文件),execute(存放源文件),code_exe(程序执行的小窗口,后续会将如何修改他保存的路径。)
在这里插入图片描述
(2)按下ctrl + shift + p ,选择第二个编辑配置,然后会生成一个c_cpp_properties.json文件
在这里插入图片描述
(3)在c_cpp_properties.json文件下的includePath添加头文件的目录,
可以右键include包,然后复制路径。
在这里插入图片描述
在这里插入图片描述
(4)c_cpp_properties.json文件配置完之后,打开task.json文件,这里也需要添加路径,在args的参数里添加“-I”,“头文件的路径”,“源文件的路径”。
在这里插入图片描述
记得保存,保存完之后基本就已经完成了自定义头文件的配置了,然后重启程序你就会发现程序已经可以正常运行了,这里主要就是看c_cpp_properties.json文件和task.json文件,然后把头文件的路径和源文件的路径设置好就行了。

(5)能够正常使用自定义的头文件之后,我们对执行文件exe也进行一下整理,使他统一保存在一个包了。
我们首先打开.vscode 文件夹下的 task.json 文件,找到 “${fileDirname}\${fileBasenameNoExtension}.exe”

修改成 “${fileDirname}\code_exe\${fileBasenameNoExtension}.exe” 并保存,同理,launch.json 下也有相同的字段,需要你修改

在源文件同目录下新建code_exe 文件夹,程序运行后,可执行文件将会生成在里面(其中 code_exe 可修改成你喜欢的英文名字)
在这里插入图片描述
(6)设置完task.json文件,再来设置一下launch.json文件,在program上也输入可执行文件exe的路径,这样在程序执行时才会打开该文件,如果没修改的话,可能会报错没找到该文件。
在这里插入图片描述

以上就是昨天在使用vscode时遇到的自定义头文件的配置以及一些可执行文件的分类的问题,希望该解答能帮到大家!

网站文章

  • std::find和std::string::find

    总之,std::find,最好拿来查找任意元素。std::string::find,最好拿来查找子字符串。

    2024-02-01 01:11:48
  • Android 开发中找不到 “gen”目录的问题

    今天写个Android的小程序,突然提示错误 Project ‘Project Name’ is missing required source folder: ‘gen’。费了半天劲原来是因为JDK...

    2024-02-01 01:11:19
  • axios单点登录跨域设置config.withCredentials = true

    axios单点登录跨域设置config.withCredentials = true

    config.withCredentials = true//在跨域请求时携带用户凭证cookie 前端设置withCredentials = true后,跨域请求会被拦截,报错 解决: 后端配置: ...

    2024-02-01 01:11:14
  • html如何制作一个漂亮的表格?+ 列表制作 + 表单制作(干货!直接收代码)

    html如何制作一个漂亮的表格?+ 列表制作 + 表单制作(干货!直接收代码)

    html如何制作一个漂亮的表单?列表的三种形式+表单制作(传统以为post提交看不见密码,而右键检查是可以看到的)

    2024-02-01 01:11:10
  • java学习之路 之 反射机制综合练习题、动态代理实例

    在上一篇博文中我们已经进行了反射机制的习题练习,这里我们在做一个考察比较全面的练习,如下:写一个类ReflectUtil类, 类中写一个静态方法Object methodInvoker(String classMethd) 此方法为无参方法如,我们传入的实参字符串为:classMethod "java.lang.String.length()"就可以通过反射执行String类中的lengt

    2024-02-01 01:10:42
  • 分布式发布订阅消息系统 Kafka 架构设计

    分布式发布订阅消息系统 Kafka 架构设计

    我们为什么要搭建该系统Kafka是一个消息系统,原本开发自LinkedIn,用作LinkedIn的活动流(activity stream)和运营数据处理管道(pipeline)的基础。现在它已为多家不...

    2024-02-01 01:10:35
  • 使用Axure+svn+httpd搭建自己的在线画图工具

    使用Axure+svn+httpd搭建自己的在线画图工具

    文章目录一、为什么要画图?二、Axure团队项目搭建三、Axure团队项目拉取四、​搭建Apache服务使用http协议访问svn安装httpd配置httpd添svn.conf配置配置http用户名密...

    2024-02-01 01:10:27
  • netty设计模式-责任链模式

    netty设计模式-责任链模式

    责任链模式的定义:使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系, 将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理他为止。 首先来看看责任链模式的四个要素: 1、责任处理器接口 2、创建链,添加删除责任处理器接口 3、上下文 4、责任链终止机制。 在netty里面,很明显channelHandler和Pipeline构成了责任链模式。让我们通过...

    2024-02-01 01:10:22
  • 根据二叉树的中序和后续遍历,求树的前序遍历(附Java代码实现)

    根据二叉树的中序和后续遍历,求树的前序遍历(附Java代码实现)

    根据树的中序遍历和后续遍历求前序遍历

    2024-02-01 01:09:52
  • 目标检测网络系列——YOLO V4

    YOLO4的设计目标也还是YOLO系列的主要关注点,就是要快。 The main goal of this work is designing a fast operating speed of an...

    2024-02-01 01:09:46