2016-04-22 200 views
4

我在此目录结构如何包括来自其他目录

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" 它不起作用,可能是路线不正确。

任何人都可以帮助我吗?

回答

3

更通常的方法是改变你的构建过程(例如编辑您的MakefileCFLAGS)所以要通过

-I $TOPDIR/include/ 

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

6

这只是

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

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

3

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

// 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