2009-10-29 135 views
26

我在Mac OS X上爲我們的客戶之一創建了一個靜態庫,以及一個用於測試靜態庫的小型cmd行應用程序。 cmd行項目有兩個額外的庫搜索路徑,這意味着我在發佈模式下鏈接到Debug版本,並且幾乎瘋了,所以我試圖擺脫這兩條路徑,但我找不到它們指定的位置。我正在查看項目信息,但事實證明,它們是在目標信息中指定的。Xcode:項目設置與目標設置

我不明白區別?!爲什麼有兩組設置,基本上是相同的?!有人可以請賜我嗎?

回答

39

一個項目可以包含多個目標。例如,我編寫的應用程序有四個應用程序本身,一個Quick Look插件,一個框架和一個包含可以動態加載的Mac OS 10.6特定功能的軟件包。

項目設置適用於每個單一目標在項目中。如果需要,每個目標都可以覆蓋個別設置 - 例如,我的項目的Target SDK設置爲10.5,但特定於10.6的捆綁包的目標SDK設置爲10.6。

在某些情況下,某些設置在項目設置中沒有意義 - 我猜想其中的一個設置是搜索路徑。

+0

推論問題:我該如何將靜態庫包含到cmd行應用程序項目中?通過拖放到源文件列表中?或從構建設置? – vectorizor 2009-10-29 10:49:29

+4

@iKenndac,你能解釋爲什麼「一些設置在項目設置中沒有意義」?我在每個項目中只有一個目標,我仍然對設置搜索路徑感到困惑。 – topace 2011-10-21 07:42:46

8

在單個項目中經常會有多個目標 - 例如,您可能有一個框架項目,其目標是構建爲動態.framework束以及構建靜態庫的目標。或者你的應用可能有一個構建應用程序本身的目標,以及構建它需要安裝的幫助程序命令行工具的目標。

只要有可能,我建議更改最高級別的設置(在項目設置中,同時更改調試&版本配置),並且只在必要時自定義目標設置。更好的是,將盡可能多的設置移動到xcconfig文件中,這似乎是指定構建設置的更加明確的方式。