Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
gcc将源文件包含在c中相互关联的子目录中_C_Gcc_Compiler Errors_Bluez - Fatal编程技术网

gcc将源文件包含在c中相互关联的子目录中

gcc将源文件包含在c中相互关联的子目录中,c,gcc,compiler-errors,bluez,C,Gcc,Compiler Errors,Bluez,我在编译一些c代码时遇到问题 我有如下代码结构 main.c src 线 第h行 第c行 可从以下网址获得: main.c包括#包括“src/line/line.h” src/line/line.c包括#包括“src/line/line.h” 当我试图在ubuntu 20.4上用gcc main.csrc/line/line.c来编译这个时 我得到这个错误 src/line/line.c:1:10: fatal error: src/line/line.h: No such fi

我在编译一些c代码时遇到问题

我有如下代码结构

  • main.c
  • src
    • 线
      • 第h行
      • 第c行
可从以下网址获得:

main.c
包括
#包括“src/line/line.h”

src/line/line.c
包括
#包括“src/line/line.h”

当我试图在ubuntu 20.4上用gcc main.csrc/line/line.c来编译这个时

我得到这个错误

src/line/line.c:1:10: fatal error: src/line/line.h: No such file or directory
    1 | #include "src/line/line.h"
      |          ^~~~~~~~~~~~~~~~~
compilation terminated.
如何编译此文件?

其他信息:

我一直在看bluez代码 他们和我有相似之处

  • client/main.c
    -包括shell.h
  • src/shared/shell.c
    -包括shell.h
  • src/shared/shell.h

因此,我正在试图弄清楚它是如何为他们的代码库工作的。

通常的方法是将include目录传递给gcc,然后让所有与之相关的
#include
语句<代码>gcc-I src….然后在源代码中包含“line/line.h”@kaylum,就是它做到了!我运行了gcc-I./main.csrc/line/line.c,并编译了它。您所说的包含src而不是当前目录是有意义的,我认为这是正确的做法。谢谢OT:关于:当我试图在Ubuntu20.4上用gcc main.csrc/line/line.c编译这个时,这不是一个编译语句。而是编译两个文件,然后链接。此外,除默认值外,这不会启用任何警告。建议使用:
gcc-c-Wall-Wextra-Wconversion-pedantic-std=gnu11-o