2013-07-26 28 views
1

我知道這裏有大量的東西存在,但是每當我嘗試他們給出的解決方案,它都不起作用,所以我只是想我會得到一個適當的定製解決方案,然後從那裏開始工作。用多種包含路徑編譯c語言

我有,我有我的主要工作目錄。

讓叫它/工作

和目錄內我有我想在我的主,這包括每一個其他幾個文件夾在其他文件夾中有依賴關係。現在讓我們來看看其中兩個。 /work/clibs/linked_list.c這對/work/common/logger.h

一個扶養到目前爲止,我已經把一個包括linked_list.h,說

#include "../common/logger.h" 

這應該解決的依賴但事實並非如此。這些文件都沒有主要的內容,但如果這是唯一的問題,它不應該讓我煩擾依賴關係。

+4

您是否嘗試將'/ work'目錄添加到您的編譯器包含路徑中(對於'GCC',您將傳遞'-I/work')。 – jcxz

+0

看看cmake – Alexis

+0

Does _linked \ _list.c_ _#include_ linked_list.h?定義要由其他文件使用的函數的文件 - 庫 - 順便說一句,不需要_main_。如果您收到錯誤訊息,請分享。 –

回答

0

您在主程序中包含的任何文件都被視爲像添加到您的主程序中的代碼部分,這使得它們中的任何#include都被視爲從主程序本身完成的#include。

您的主程序位於「/ work」,您包含「clibs/linked_list.h」。在「clibs/linked_list.h」中,將「../common/logger.h」改爲「common/logger.h」,它應該可以工作。

+0

好了,有一半的問題是你們提到的,但最重要的是我正在使用cygwin並試圖從這裏找出-I目錄是一場噩夢...... linux使用'/',因爲你們都知道和Windows使用'\',所以我試圖弄清楚它是使用Linux目錄結構還是Windows。原來這是一種混合物。它需要一個Windows目錄,所以「C:...」但它需要Linux'/' – user1316538

0

我不認爲#include「../common/logger.h」是錯誤的。你一定有其他的錯誤,你能給我們一個完整的代碼嗎?