当头文件位于不同的文件夹中时,VSCode 找不到头文件

VSCode can't find header files when they are in different folders

提问人:Dominykas 提问时间:10/3/2022 更新时间:10/3/2022 访问量:960

问:

我对 VSC 有问题。我最近开始使用它,好吧,我有 1 个问题。我的项目有多个文件夹,这些文件夹只包含 .h 和 .c 文件,但有时我需要一个文件夹中的 .c 文件会从另一个文件夹的 .h 文件中读取函数,当我包含 .h 文件时,编译器找不到它。示例如下:enter image description here

唯一有效的方法是包含该文件的完整路径:#include "C:/Users/Name/Desktop/Project/Project_dir/components/configurations/I2C_master.h"

这对 VSC 来说是正常的还是我不知道如何使用链接器?

C visual-studio-code 链接器 包含 头文件

评论

0赞 WhozCraig 10/3/2022
“这对 VSC 来说是正常的还是我不知道如何使用链接器?”- 找不到标头与链接器配置完全无关。这意味着您的包含路径配置不正确。
0赞 Dominykas 10/3/2022
所以链接器不链接路径?
0赞 WhozCraig 10/3/2022
链接器链接目标代码和库以创建程序(或其他库)。它们是编译后的。它们与预处理器阶段(甚至在语言编译之前就已经出现)无关。基于链接器的路径规范是告诉链接器在链接阶段在哪里可以找到;在预处理器阶段不是标头。
0赞 Dominykas 10/3/2022
那么有没有办法解决这个错误呢?因为我认为这在我的代码中会导致另一个问题,当我得到对函数的未定义引用时,该函数仅在另一个文件夹中定义。

答:

0赞 ManuRC 10/3/2022 #1

我认为您在这里的问题是您正在编写文件路径,就好像两者位于同一目录中一样。

如果要引用来自另一个目录的文件,则应编写如下相对路径:

#include "../configurations/I2C_master.h"