错误:没有这样的文件或目录 - C

2024-04-26

解读完这个之后comment https://stackoverflow.com/questions/41281332/code-directory-structure-library-design#comment69813504_41281605,

/***************** arrayImpl.c **************/

#include"list/list.h"

#if defined(ARRAY)
 ....
#endif

I wrote #include"list/list.h" in ./Computing/list/arrayImpl.c供测试用Computing/list使用ADTComputing/testList.c程序,如图所示here https://github.com/shamhub/Computing/blob/master/testList.c.

But list/list.h找不到list/arrayImpl.c, 如下所示,

PC ~/code_practice/Computing
$ gcc -Wall -g -DARRAY ./list/*.c testList.c -o testList
./list/arrayImpl.c:3:22: fatal error: list/list.h: No such file or directory
compilation terminated.
./list/linkedListImpl.c:3:22: fatal error: list/list.h: No such file or directory
compilation terminated.

遵循该评论后,我如何理解此错误?难道我理解错了?


list.h与包含它的 c 文件位于同一目录中。当你这样做时

#include "list/list.h"

编译器尝试在包含路径+中查找文件/list。例如,它会寻找list/list/list.h这是不存在的。

那么有效的方法就是改变为#include "list.h"

OR

使用将当前目录添加到命令行-I. so list/list.h位于包含路径中。

gcc -Wall -g -I. -DARRAY ./list/*.c testList.c -o testList

From gcc 搜索路径文档 https://gcc.gnu.org/onlinedocs/cpp/Search-Path.html

-我。 -I- 与没有 -I 选项完全不同,并且不会导致 '' 的相同行为,包括 '""' 包含没有特殊选项的 get。-我。在编译器的当前工作目录中搜索头文件。它可能与包含当前文件的目录相同,也可能不同。

任何地方都没有提到包含路径包含启动 gcc 的当前目录。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

错误:没有这样的文件或目录 - C 的相关文章

随机推荐