我在这个目录结构中工作
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"
它不起作用,可能是路线不正确。
有人可以帮助我吗?
答案 0 :(得分:6)
只是
#include "../../include/utility_lib.h"
-I
标志,您应该只添加到编译器设置
答案 1 :(得分:4)
您可以直接在代码中包含头文件:
// 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
答案 2 :(得分:3)
更常见的方法是更改构建过程(例如,修改CFLAGS
中的Makefile
)以便传递
-I $TOPDIR/include/
到您的编译器。在Makefile
内,您可能会定义一些变量TOPDIR=
并将其用作$(TOPDIR)