2013-09-30 90 views
5

我有一個Xcode項目,它本質上是一個單獨的應用程序,它被內置到幾個幾乎相同的目標中。我已經在中心位置移動了幾乎所有的配置設置,但我無法弄清楚如何將鏈接與靜態庫(libMantle.a)移動到xcconfig。我已經嘗試了-framework-l標誌,就像我用於各種其他庫一樣,但它們不起作用。有沒有辦法讓.a文件脫離Link Binary with Libraries窗格,所以我不需要手動同步所有的目標?在xcconfig中使用靜態庫鏈接二進制文件

回答

2

想通了......

比方說,你要對文件libGoogleAnalyticsServices.a鏈接。基本上有三件事你應該在你的.xcconfig中使它工作。

首先,您要確保在搜索路徑中具有庫的路徑。然後您需要通過兩個標誌使鏈接器開心-L與目錄的路徑,並且-l與庫。

全部放在一起會得到你的東西,如:

LIBRARY_SEARCH_PATHS = $(inherited) "$(SRCROOT)/Vendor/Google Analytics" 
OTHER_LDFLAGS = $(inherited) -L"$(SRCROOT)/Vendor/Google Analytics" -lGoogleAnalyticsServices 

(您需要調整您的相對路徑)

中得到最有用的東西整理出了這是日誌Navigator(Xcode中的命令+ 8)。通過將靜態庫放入構建階段Link Binary With Libraries面板併成功構建,您可以查看日誌中鏈接器步驟的詳細信息,並查看它是如何將Analytics庫傳遞給編譯器的。從那裏它只是在xcconfig中複製這些標誌。

+0

請問你如何處理各種目標的源文件?你是否也將它們添加到xcconfig文件中?這甚至有可能嗎? – vinzenzweber

+0

目標特定的xcconfig文件變得非常混亂,因爲沒有真正的好辦法。不過,我很少有項目的目標具有完全不同的圖書館依賴項目。你想要做什麼? – farski

+0

我有一個有9個目標的項目。我只需要這些目標爲每個目標設置一個單一的預處理器宏。主要是爲不同的環境(開發,分期,製作)更改基礎API URL。所以我很想擁有一個指定基本構建配置的文件,其中包括要複製的所有源文件和資源。 – vinzenzweber

相關問題