簡體   English   中英

Xcode:與第3方框架的鏈接和編譯

[英]Xcode: Linking and compiling with 3rd party framework

簡而言之

為了將我的C ++ iOS代碼與Amazon AWS開發工具包鏈接在一起,我不得不修改AWS框架目錄的結構。 我試圖了解我做錯了什么。

詳細

我有一個用於iOS的Xcode C ++項目,該項目需要與Amazon的AWS開發工具包集成。 我下載了最新版本的SDK。 SDK作為框架分發。 根據Amazon的文章《 適用於iOS的AWS開發工具包入門》 ,我要做的就是:

按住Control鍵並單擊Frameworks Group,然后單擊“將文件添加到<項目名稱>”。

根據其他Internet資源和我的個人知識,我知道將框架添加到項目的“使用庫構建二進制文件”構建階段也應該可行。

兩種方法均無效。 編譯器找不到頭文件,鏈接器找不到二進制文件。 此外,當框架出現在項目導航器中時,擴展節點什么也沒有顯示,而其他框架通常包含其資源並包含文件。

我四處張望,發現框架的目錄結構是:

AWSiOSSDK.framework/
   Versions/
      A/
         Headers/
         Resources/ 
         AWSiOSSDK

據我了解,這並不完全符合蘋果公司的要求 因此,我不顧一切地嘗試刪除了Versions/A部分。 即,將框架的所有內容立即放在AWSiOSSDK.framework目錄下。

出人意料的是,這解決了所有問題-找到了標頭,鏈接了二進制文件,一切正常。 現在我想知道為什么。 我假設由像亞馬遜這樣的受人尊敬的公司分發的框架應該具有正確的形式。 那為什么不起作用呢? 為什么我的修改結構有效? 是否有結構不同的框架? 如何告訴編譯器和鏈接器接受原始格式? 還是亞馬遜分發了損壞的捆綁包?

您是否已將用於iOS的解壓縮AWS開發工具包存儲在Windows機器或基於Windows的文件服務器上? 如果在Mac上解壓縮SDK,應該會獲得額外的符號鏈接,但似乎其中沒有任何符號鏈接。 使用非基於Mac的文件系統可能會刪除這些符號鏈接。

您應該從AWS下載最新版本的SDK,在Mac上將其解壓縮,看看是否還有其他符號鏈接。 如果您有任何問題,請告訴我。

暫無
暫無

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

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