2013-08-21 75 views
1

我有兩個項目的工作區:靜態庫和可可應用程序。靜態庫鏈接一些系統框架(libcrypto.dylib)幷包含動態庫的.h文件(openssl/bn.h openssl/rsa.h)。我的靜態庫成功編譯。Xcode:自動鏈接靜態庫依賴項目

Cocoa應用程序使用這個靜態庫,並在編譯時給出一個錯誤:「未定義的符號,找不到符號」(bn,新的rsa等)。 但是,當我將libcrypto.dylib也包含到可可應用程序項目中時,則沒有錯誤。

問題:Xcode可以通過依賴靜態鏈接庫來自動執行此操作嗎?

謝謝。

回答

1

答案不幸的是沒有。通常的做法是在需要代碼的項目中包含每個靜態庫。這就是它完成的方式。

關於如何處理XCode項目中的多個靜態庫,有一個interesting article

+0

我在做什麼:我有一些靜態庫鏈接到我的應用程序。每個靜態庫都需要動態庫。爲什麼我必須將動態庫鏈接到我的應用程序,如果靜態庫已經使用這種動態? – Vladislav

+0

不幸的是,你將需要手動執行此操作。您的靜態庫引用了其他需要存在的靜態庫,因爲在make過程中,llvm需要擁有所有庫和對象才能生成最終庫。 –