2014-09-04 72 views
3

我想將photoPay 417框架包含到我的庫中。庫項目編譯和工作正常,但是當我在我的應用程序中使用MyLibrary.a文件時,我得到了「架構armv7的未定義符號」錯誤。有任何想法嗎?我可以將自定義框架包含到庫中,否則這是不可能的。將custome框架連接到xcode庫中

回答

1

Trojanfoe的回答對你的情況是正確的。但總的來說,答案取決於框架內庫的類型。

iOS/MacOS框架只是一個庫的集合以及所有相關的頭文件。這使得將庫包括到其他項目中變得更加容易,因爲整個框架可以一次包含在內,因此無需修改鏈接器和標頭搜索路徑和鏈接器標誌。

庫本身可以是靜態庫,也可以是動態/共享庫。框架可以包含任何類型的庫,在這方面沒有限制。

如果框架中的庫是靜態的,那麼在編譯時將該庫中的所有對象都複製到目標產品中。如果目標產品是一個靜態庫(MyLibrary.a你的情況),在應用程序框架附加的鏈接是不需要的,因爲所有的對象都包含在MyLibrary.a

如果庫在框架中是動態的,那麼來自該庫的對象將在加載時或運行時加載,而不是在編譯時加載。因此,該類型的框架也需要與最終應用程序相鏈接。

就你而言,pdf417框架包含一個動態庫,這意味着你還必須將該框架包含到最終應用程序中。


我是pdf417.mobi產品的開發人員。事情是,我們可以以任何格式提供我們的圖書館。我們在Github存儲庫中選擇的格式是嵌入式框架,它包含一個動態庫以及所有資源文件,因爲這使得將應用程序項目中的框架包括進來非常簡單。如果您有需要不同格式的使用案例,我們邀請您與我們聯繫www.pdf417.mobi/#support

0

靜態庫只是對象文件的集合(有點像沒有壓縮或層次結構的zip文件),並且不能保存它可能具有的任何依賴關係的信息。

因此,您必須將最終的可執行二進制文件與庫和相關框架鏈接起來。如果依賴關係是靜態庫,動態庫或框架,則同樣適用。