gcc将源文件包含在c中相互关联的子目录中
我在编译一些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
- 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代码
他们和我有相似之处
-包括shell.hclient/main.c
-包括shell.hsrc/shared/shell.c
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