2013-01-03 397 views
45

我想在Objective-C Xcode項目中使用C庫。如何在xcode項目中設置包含路徑

該庫的目錄結構如下:

-- include/ 
    |-- config.h 
    |-- lib/ 
    | |-- file1.h 
    | |-- file2.h 
    | |-- file3.h 

圖書館的文件說,包括file1.h,並file1.h包括file2.h和file3.h。

我收到「文件未找到」的錯誤,包括file2.h和file3.h`。 他們是按以下方式包括通過file1.h:

#include <lib/file1.h> 
#include <lib/file2.h> 

我讀here,這些尖括號指示預處理尋找包括沿由INCLUDE環境變量指定的路徑的文件,而不是搜索與包含#include的文件位於同一目錄中。

因此,我通過轉到Product-> Edit Scheme ..在Xcode中添加了INCLUDE環境變量,並將其設置爲/the-whole-path-to/include/但是,我仍然收到找不到文件的錯誤。

的文件已經被成功列入如果我改變file1.h,包括他們是這樣的:

#include "file2.h" 

但我寧願這樣做,在庫中的每個文件。

我該如何解決這個問題?

+0

另請參閱Apple開發人員的[Xcode Build Setting Reference](https://developer.apple.com/library/mac/documentation/DeveloperTools/Reference/XcodeBuildSettingRef/1-Build_Setting_Reference/build_setting_ref.html)。 – jww

回答

45

想通了。

所有你需要做的就是-I標誌添加到您的構建下的「其他C標誌」

所以在「其他C標誌」的目標構建設置搜索設置,並添加-I/path-to-include/

這裏的屏幕截圖: enter image description here

+0

就你而言,什麼是pathToInclude。我問這是因爲我的路徑已經過了我的xcode項目,並且我嘗試過使用-I /../../ folder_to_include,但它不起作用。謝謝 – xarly

+1

見下面的評論;讓XCode通過將它添加到搜索路徑來知道你在做什麼可能會更好,而不是粘在-I標誌中。 –

+0

@John Clements,謝謝,最後我已經用你的解決方案,用這條路徑,它工作!,你說得對,它更乾淨。謝謝 – xarly

5

雖然這可行,但最好將它放在「搜索路徑」選項卡下。

+1

小心提供方向? –

+0

而不是將其置於「Apple LLVM編譯器4.1 - 語言」下,將其放在「搜索路徑」下。有一個專門用於包含。 – imallett

+0

答案應該站在自己的位置。你們似乎提到了一個現有的答案,但隨着它們的顯示順序不斷變化,這是一個可怕的想法。坦率地說,現有答案下的評論適合你的評論。 –

45

在XCode 5.0.2版本中,最好的方法是將其添加到目標的「搜索路徑」窗格中。定位這是(對我來說)令人難以置信的不直觀。以下是我如何做到的,對於那些和我一樣困惑的人:

在左欄中,單擊Project Navigator圖標(看起來像一個文件夾)。然後,點擊項目條目。這應該在主窗格中顯示一堆設置。在這個窗格的頂部,點擊「Build Settings」,這顯示了一堆條目...包括一個叫做Search Paths的搜索路徑......但是你不能在這裏添加搜索路徑!這讓我很痛苦同時,直到我發現該窗格頂部的項目名稱是一個下拉菜單;從此下拉菜單中選擇目標,現在您應該能夠雙擊「標題搜索路徑」並進行必要的修改。

哦,瘋狂的GUI的喜悅。

+3

我沒有任何問題添加項目的搜索路徑..不需要切換到目標:http://i.imgur.com/Tcs36ec。 png –

+0

@BrianGordon你的照片專門顯示目標被改爲項目。 –

+1

@AntonK對,它在項目上。不是目標。藍色圖標表示項目。約翰·克萊門茨表示,它必須以這個選項出現爲目標。 –

10

我使用項目生成設置(如約翰和伊恩上面提到的解決了這個在Xcode 5.0.1,但我不能評論,由於< 50代表)。

新信息:

當添加包括對用戶頭搜索路徑,我也不得不改變總是搜索用戶路徑爲是。

向(非用戶)標題搜索路徑添加包含時,始終搜索用戶路徑不是必需的。

2

您可以使用「其他C標誌」或使用「HEADER_SEARCH_PATHS」來指定包含路徑,以查找可執行文件的標頭。

3

試試這個:

1 - 在左側的Xcode窗格中選擇您的項目文件
2 - 確保您的項目在中間的Xcode窗格
3選擇 - 選擇「生成設置」在頂部中間的Xcode窗格
4 - 確保「所有」 &「組合拳」只是下「生成設置」
5選擇 - 僅低於「生成設置」

在搜索欄中鍵入頭你SH應該在中間窗格中看到準備好進行編輯的搜索路徑字段。

+0

謝謝!你怎麼能在全球範圍內做到這一點? –

+0

爲什麼最好的答案總是不被接受的答案? :)。 – TatiOverflow

相關問題