2009-04-14 74 views
17

我希望在使用Xcode時爲我的包含路徑添加〜/ include到全部項目,例如在Linux中設置環境變量CPLUS_INCLUDE_PATH。 (請參閱here以瞭解相關的Linux問題。)如何爲xcode添加全局包含路徑

Xcode中可能嗎?我試着設置上面的環境變量,但它似乎不工作。 (如果可能的話,我也想設置相關路徑,如LIBRARY_PATH和LD_LIBRARY_PATH。)

回答

14

Apple's Docs,你能使用environment variable爲任何版本設置提供默認值。

在這種情況下,您需要設置HEADER_SEARCH_PATHS。出於某種原因,我不明白,這是行不通的。它適用於其他版本設置(例如OTHER_CFLAGS),但不適用於HEADER_SEARCH_PATHS。您可以在構建設置窗口(左下方的書籍按鈕)中打開研究助理,查看任何設置的變量名稱。

一個工作變量是USER_HEADER_SEARCH_PATHS,它就像您想要的一樣,但只適用於雙引號中的路徑(不是在尖括號)

所以

#include "bar.h" 

會的工作,但

#include <bar.h> 

不會。

構建設置的plist從上述文章中所引用的環境變量應該結束了看起來像這樣:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<dict> 
    <key>USER_HEADER_SEARCH_PATHS</key> 
    <string>~/test</string> 
</dict> 
</plist> 

希望有所幫助。

0

HEADER_SEARCH_PATHS構建設置添加到您的Xcode項目中。此設置採用空格分隔的路徑列表,如果路徑以雙星結尾(**),則它將遞歸搜索子目錄。因此,要回答你的榜樣,設置HEADER_SEARCH_PATHS到:

~/include 

如果你有多個路徑包括,你將它設置爲一樣的東西:

~/include ~/my_other_includes/** /usr/local/special_frameworks/** 
+0

我想* *全局設置,這樣我就不用加了相同的路徑爲每個Xcode項目。 – 2009-04-15 01:06:12

+1

好的,你最初並沒有實際說明。正如傑西所說,你也可以在你的環境中設置構建設置,我想這對你很有用。 – 2009-04-16 00:16:07

-3

構建設置不是環境變量,環境變量也不是構建設置。設置環境變量不會影響Xcode構建。

USER_HEADER_SEARCH_PATHS是一個構建設置,並將路徑列表放入它將實現你想要的。如果您在目標的檢查器中設置該值,則該值僅對該目標生效(並且僅適用於您指定的生成配置)。如果將其設置在項目檢查器中,它將在項目中的所有目標中生效,除非目標用自己的設置覆蓋目標。

對於特定於您機器的路徑,您應該在Xcode首選項中定義一個源代碼樹,如LOCAL_INCLUDE = ~/include。然後在項目中定義USER_HEADER_SEARCH_PATHS = $(LOCAL_INCLUDE)。這樣,其他人就可以打開您的項目,並通過將其源代碼樹設置爲其機器上本地包含的特定位置來構建它,而無需更改項目文件。

0

只需在您的「Groups & Files選項卡」中選擇一個.c或.m文件,然後通過RMB選擇「獲取信息」,然後在「build」下,您可以添加其他編譯器標誌,如-I,以獲取其他包含搜索路徑。

1

對於任何你祝福寵兒正在努力實現這個後山獅世界本,或任何其他黑客~/.MacOSX/environment.plist,又名全球環境變量,檢查出EnvPane - An OS X preference pane for environment variables

EnvPane是適用於Mac OS X 10.8(Mountain Lion)的偏好窗格,可讓您爲圖形和終端會話中的所有程序設置環境變量。它不僅可以恢復對Mountain Lion中的〜/ .MacOSX/environment.plist的支持,還可以立即發佈對環境的更改,而無需註銷並重新登錄。即使通過手動編輯〜/ .MacOSX/environment.plist,而不僅僅是通過首選項窗格所做的更改。

enter image description here