0


关于如何利用vscode 包含.h 文件的问题

在 VS Code 中,可以使用 C/C++ 扩展来实现跨文件包含 .h 头文件。

步骤如下:

(一)使用的cpp 文件和要使用的.h 文件在同一个文件夹中

  1. 在 VS Code 中打开需要使用头文件的源文件。

  2. 在源文件中使用 #include 指令引入需要的头文件。

例如,要引入一个名为 "example.h" 的头文件,可以在源文件中添加以下代码:

#include"example.h"

(二) 二者如果不在同一个文件夹的话

那么就需要加上相对路径和绝对路径了 如果在一个工程项目的话 可以使用“../ ”表示在此文件夹上一级再去引用同一个

举例

data1 和data2 文件目录结构如下,核心核心代码test.cpp,data1 里面有test.h 可以直接引用 data2的话可以使用相对路径,当然也可以使用绝对路径。同一个项目的使用相对路径非常的方便和java 导入包很像

主要cpp 代码 点击可以直接运行,

##include<iostream>
#include<vector>
 
// #include<test.h>
#include"test.h"
#include<algorithm>
//使用相对路径和绝对路径来配置C++ 的头文件问题
#include"../data2/Person.h"
using namespace std;

void test01(){
    TreeNode *head=new TreeNode(2);
    listNode *node=new listNode(1);
    Person p(20,"liuBei");
    cout<<p.GetAge()<<endl;
     
    cout<<p.name<<endl;
    cout<<"hello"<<endl;

}

int main()
{

test01();

system("pause");
return 0;
}

Person.h代码

#include<iostream>
using namespace std;

class Person{
public:
    int age;
    string name;
    Person(int x,string name):age(x),name(name){}

    int GetAge(){
        return this->age;
    }
};

struct listNode{
    
    int val;
    listNode *next;
    listNode(int x):val(x),next(nullptr){}

};

test.h 代码

#include<iostream>
using namespace std;

struct TreeNode{
    int val;

    TreeNode *left;
    TreeNode *right;
    //TODO:
    TreeNode(int x):val(x),left(nullptr),right(nullptr){}

};

======================================================================

2023.8.19 补充,如果头文件和函数内容的文件分开编写如何处理呢?即一个文件定义头,一个文件写函数的实现。说到这里就需要 想到linux 下面的Makefile 文件的编写了。

见我的文章:

     linux 系统中vi 编辑器和库的制作和使用_cat_fish_rain的博客-CSDN博客

    linux系统--makefile文件,gdb 以及文件描述符_cat_fish_rain的博客-CSDN博客

这里详细得说明了制作库和编译的方法。

。现在说明解决办法:在tasks.json 文件里面添加如下,"${fileDirname}\*.cpp",并且注释掉

“${file}。就可以了

{
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: g++.exe 生成活动文件",
            "command": "G:\\mingw\\mingw64\\bin\\g++.exe",
            "args": [
                "-fdiagnostics-color=always",
                "-g",
                "${file}",
                // "${fileDirname}\\*.cpp", 想要编译多个包含自定义头文件的代码,就需要把这一行加上,这行会编译当前目录下所有的.cpp 文件
                //,所以需要保证所有的cpp 文件都没有错误,并且没有和主项目的不相关(没用上的不报错,但是没用)
                "-o",
                "${fileDirname}\\${fileBasenameNoExtension}.exe",
                "-std=c++17",  
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "调试器生成的任务。"
        }
    ],
    "version": "2.0.0"
}

======================================================

补充想要更加深入的理解里面 的内容就需要一下三篇文章的内容,看完一下的肯定可以解决这块的问题:

cmake和vscode 下的cmake的使用详解(一)。-CSDN博客

cmake和vscode 下的cmake的使用详解(二)-CSDN博客

cmake和vscode 下的cmake的使用详解(三)-CSDN博客

喜欢的点赞,收藏一下,你的鼓励就是进步的更大动力。

标签: c++ vscode makefile

本文转载自: https://blog.csdn.net/cat_fish_rain/article/details/129628912
版权归原作者 cat_fish_rain 所有, 如有侵权,请联系我们删除。

“关于如何利用vscode 包含.h 文件的问题”的评论:

还没有评论