如何从其他目录中将头文件包含在.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)
我在这个目录结构中工作
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)