在VSCode中,可以使用C/C++扩充来实现跨文件包含.h头文件。
步骤如下:
(一)使用的cpp文件和要使用的.h文件在同一个文件夹中
在VSCode中打开须要使用头文件的源文件。
在源文件中使用#include指令引入须要的头文件。
比如,要引入一个名为"example.h"的头文件linux通配符,可以在源文件中添加以下代码:
#include"example.h"
(二)三者若果不在同一个文件夹的话
这么就须要加上相对路径和绝对路径了假如在一个工程项目的话可以使用“../”表示在此文件夹上一级再去引用同一个
举例
data1和data2文件目录结构如下linux vector 头文件,核心核心代码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<<p.GetAge()<<endl;
cout<<p.name<<endl;
cout<<"hello"<<endl;
}
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博客
喜欢的点赞linux下socket编程,收藏一下linux vector 头文件,你的鼓励就是进步的更大动力。