如何包括来自其他目录
问题描述:
我在此目录结构如何包括来自其他目录
root: Code
|--src
|--client
|--client.c
|--server
|--server.c
|--lib
|--utility.c
|--include
|--prototype.h
|--utility_lib.h
工作在client.c
文件中.C头文件,我必须包括utility_lib.h
文件。
与#include "-I../../include/utility_lib.h"
它不起作用,可能是路线不正确。
任何人都可以帮助我吗?
答
更通常的方法是改变你的构建过程(例如编辑您的Makefile
的CFLAGS
)所以要通过
-I $TOPDIR/include/
到你的编译器。在Makefile
的内部,您可能会定义一些变量TOPDIR=
并将其用作$(TOPDIR)
答
这只是
#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