我正在尝试修改Android,其中我正在更改其部分C ++代码,并且面临与标题包含相关的问题。
在文件foo.c
中说,我需要包含bar.h
,但它位于不同的文件夹中:
../../dir1/dir2/bar.h
bar.h
又包含来自同一文件夹baz.h
的文件(dir2)
:
#include <dir2/baz.h>
首先,我尝试在bar.h
中包含foo.c
,如下所示:
#include "../../dir1/dir2/bar.h"
但他们bar.h
找不到baz.h
。
我尝试将Makefile
更改为添加INC=-I../../dir1
,但它不起作用。任何建议都会有所帮助。
答案 0 :(得分:3)
由于bar.h和baz.h位于同一目录中,请在bar.h中使用以下内容:
#include "baz.h"
为了在foo.c中#include
bar.h,你有很多选择。 E.g。
选择1:
#include "../../dir1/dir2/bar.h"
并使用-I.
进行编译。您也可以省略-I.
。
选择2:
#include <bar.h>
并使用-I../../dir1/dir2
进行编译。
选择3:
#include <dir1/dir2/bar.h>
并使用-I../..
进行编译。
在foo.c中为#include
bar.h选择的方法取决于对代码的其余部分的结构以及项目中模块性的定义的更大视图。