2016-08-31 48 views
1

我試圖修改機器人,其特徵在於,我改變了它的一些C++代碼,和現在面臨與報頭包括問題。C++頭依賴性

說,在文件foo.c,我需要包括bar.h,但它位於不同的文件夾:

../../dir1/dir2/bar.h

bar.h又包括同一文件夾(dir2)文件baz.h

​​

起初,我想包括bar.h在012以下:

#include "../../dir1/dir2/bar.h"

但他們bar.h找不到baz.h

我試圖更改Makefile以添加INC=-I../../dir1,但它不起作用。任何建議都會有幫助。

+0

您是否嘗試過反傾銷的所有編譯標誌GCC使用?我認爲在製作 – szx

回答

3

由於bar.h和baz.h是在同一目錄下,使用bar.h如下:

#include "baz.h" 

爲了#include bar.h foo.c中,你有很多選擇。例如。

選擇1:

#include "../../dir1/dir2/bar.h" 

-I.編譯。您也可以省略-I.

選擇2:

#include <bar.h> 

-I../../dir1/dir2編譯。

選擇3:

#include <dir1/dir2/bar.h> 

-I../..編譯。

您選擇的方法#include foo.c中的ing bar.h取決於您的代碼的其餘部分的結構以及您對項目中模塊化的定義的更大視圖。

+1

中必須有類似詳細模式的內容。對於**選擇1 **,您實際上並不需要'-I'標誌 – Zereges

+0

@Zereges。 –