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

步骤如下:

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

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

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

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

#include"example.h"

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

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

举例

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

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

##include

#include

// #include

#include"test.h"

#include

//使用相对路径和绝对路径来配置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<

cout<

cout<<"hello"<

}

int main()

{

test01();

system("pause");

return 0;

}

Person.h代码

#include

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

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博客

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

精彩内容

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: