2013-03-22 55 views
0
 gcc main.c -o main -I include 

我正在創建一個小型的c應用程序,其中所有源文件都在src目錄中,而包含目錄中的所有頭文件以及所有常用文件都位於共同目錄中。所有這三個目錄與main.c一起被命名爲「app」目錄。現在我正在嘗試運行main.c,其中包含#include指令包含頭文件,包含頭文件和函數調用到common和src目錄中的.c文件。我正在使用-I,但它僅適用於一個目錄路徑指示。 如何讓編譯器查看src common和include目錄來解析調用。 請在使用gcc編譯時建議我使用命令或make文件來包含多個目錄的路徑。如何在Linux上使用C包含多個目錄中的文件?

+1

見[此](http://stackoverflow.com/questions/5846804/multiple-include-paths-with-gcc-c)可能會有幫助 – 2013-03-22 12:15:05

+0

您是否包含.c文件? – LtWorf 2013-03-22 12:15:23

+0

你的語法不清楚。 'common /'中有什麼? – Beta 2013-03-22 12:22:01

回答

2

多個-I選項是允許的。該-I選項從Options for Directory Search 的說明指出:

目錄dir添加到要在其中搜索頭文件的目錄列表的頭部。這可以用來覆蓋系統頭文件,替換你自己的版本,因爲這些目錄是在系統頭文件目錄之前被搜索到的。但是,您不應該使用此選項來添加包含供應商提供的系統頭文件的目錄(使用-isystem)。 如果您使用多個-I選項,則會按照從左到右的順序掃描目錄;標準系統目錄在後面。

例如:

GCC main.c中-o主-Iinclude -Isrc /包括-Icommon /包括

注意,如果main.c使用在另一個.c文件實現的功能(s)那麼其他.c文件也需要編譯並鏈接到最終的程序二進制文件中。例如:

GCC main.c中的src/another.c -o主-Iinclude -Isrc /包括-Icommon /包括

相關問題