2015-04-23 80 views
0

我正在開發一個靜態庫,它被添加到我的主項目中,用於測試靜態庫的函數。裏面的靜態庫使用了一些第三方組件,這個第三方組件需要添加一些額外的庫(例如:libz.dylib,SystemConfiguration.Framework)。這很好,但是當我嘗試構建包含靜態庫的主項目時,出現了一堆鏈接器錯誤。我想,如果我將相同的框架和庫添加到我需要添加到靜態庫的主項目中,鏈接器錯誤消失並且項目已成功構建。問題是我真的需要將所有這些資源添加到主項目中嗎?我發現如果我將我的靜態庫提供給其他人使用,我需要在文檔中包含一些框架和庫,這些文檔中也必須添加到集成項目中,這讓我感到非常的瘋狂。或者我錯過了一些重要的東西?項目中的靜態庫:爲什麼靜態庫使用的框架也需要添加到項目中?

回答

0

這是因爲靜態庫沒有鏈接,不像可執行文件或動態庫。

靜態庫只是對象文件的存檔,而對象文件包含對它們使用的符號的外部引用。這些引用在鏈接可執行文件/動態庫之前不會被解析。

因此,當您鏈接到一個靜態庫時,您負責爲鏈接器提供任何相關庫,而鏈接器本身可以是靜態的或動態的。

相關問題