2016-07-10 61 views
1

我有這樣的一堆文件中的#include聲明:有沒有可能爲#include使用某種路徑?

#include "/Users/cooper/Desktop/MyLib/graph_api.h" 
#include "/Users/cooper/Desktop/MyLib/mst.h" 
#include "/Users/cooper/Desktop/MyLib/dfs.h" 
#include "/Users/cooper/Desktop/MyLib/bfs.h" 
#include "/Users/cooper/Desktop/MyLib/topo_sort.h" 
#include "/Users/cooper/Desktop/MyLib/scc.h" 
#include "/Users/cooper/Desktop/MyLib/bipartite.h" 
#include "/Users/cooper/Desktop/MyLib/dijkstra.h" 
#include "/Users/cooper/Desktop/MyLib/union_find.h" 
#include "/Users/cooper/Desktop/MyLib/my_string.h" 
#include "/Users/cooper/Desktop/MyLib/2d_array.h" 

它可能會改變,但是,在未來,我將不得不更新行數。是否有可能有類似

PATH = "/Users/cooper/Desktop/MyLib/ 
#include PATH + "2d_array.h" 

+6

它不是makefile本身的一部分。它是一個命令行選項。 Makefile只是一個管理編譯的機制 –

+1

它看起來像你在一個OSX系統(通過路徑判斷),這意味着你可能使用Xcode。在項目設置中,必須有一個地方可以輸入預處理器設置,例如添加包含路徑。如果你這樣做,並添加'/ Users/cooper/Desktop/MyLib',那麼你可以簡單地執行'#include <2d_array.h>'。 –

+2

[這個答案](http://stackoverflow.com/questions/4743822/generate-include-file-name-in-a-macro)應該對你有用。 (我的意思是'#define PATH「/ Users/cooper/Desktop/MyLib /'和'#include PATH」2d_array.h「') – mvidelgauz

回答

9

通常,您的編譯器提供了一個選項,您可以在其中查找來自#include語句的頭文件的位置。

E.g.爲GCC添加

-I/Users/cooper/Desktop/MyLib 

到您的編譯器命令行。


此選項可能也可以在IDE的項目設置中設置,或者在您的編譯系統中設置爲變量。

相關問題