簡體   English   中英

將自定義框架鏈接到 xcode 中的庫

[英]linking custom framework to library in xcode

我想將Microblink 的 PDF417框架包含到我的庫中。 庫項目編譯並正常工作,但是當我在我的應用程序中使用 MyLibrary.a 文件時,出現“架構 armv7 的未定義符號”錯誤。 有任何想法嗎? 我可以在庫中包含自定義框架嗎,或者這是不可能的。

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

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

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

如果框架中的庫是靜態的,則該庫中的所有對象都會在編譯時復制到目標產品中。 如果目標產品是靜態庫(在您的情況下為MyLibrary.a ),則不需要與應用程序中的框架進行額外鏈接,因為所有對象都包含在MyLibrary.a 中

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

在您的情況下,pdf417 框架包含一個動態庫,這意味着您還必須將該框架包含到您的最終應用程序中。


我是 Microblink 的PDF417 SDK的開發人員。 問題是,我們可以提供任何格式的庫。 我們在 Github 存儲庫中選擇的格式是 .embeddedframework,它包含一個動態庫和所有資源文件,因為這使得將框架包含到應用程序項目中非常簡單。 如果您有需要不同格式的用例,我們邀請您通過https://help.microblink.com/hc/en-us與我們聯系

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM