如何从其他目录中将头文件包含在.c中

How to include header file in .c from other directories

我在这个目录结构中工作

root: Code
|--src
    |--client
        |--client.c
    |--server
        |--server.c
    |--lib
        |--utility.c
|--include
    |--prototype.h
    |--utility_lib.h

client.c 文件中,我必须包含 utility_lib.h 文件。

#include "-I../../include/utility_lib.h" 不行,可能是路线不对

有人能帮帮我吗?

只是

#include "../../include/utility_lib.h"

-I 标志你应该只添加到编译器设置

您可以直接在代码中包含头文件:

// file client.c
#include "../../include/utility_lib.h"

或者您可以告诉您的编译器在哪里可以找到头文件:

// file client.c
#include <utility_lib.h>

当前目录为client时的编译命令:

gcc -c client.c -o client.o -I../../include

当前目录为src时的编译命令:

gcc -c src/client.c -o client.o -I../include

一种更常用的方法是更改​​您的构建过程(例如编辑 Makefile 中的 CFLAGS)以便通过

-I $TOPDIR/include/

给你的编译器。在 Makefile 中,您可能会定义一些 make 变量 TOPDIR= 并将其用作 $(TOPDIR)