簡體   English   中英

鏈接到需要框架的 static 庫

[英]Linking to a static library that requires a frameworks

我有一個主要項目和一些較小的子項目。 較小的項目包含一個自包含的 Cocos2d 應用程序和一個 static 庫,其中僅包含與主項目相關的類(子項目都使用 Cocos2D 框架)。 主項目依賴於 static 庫。 我認為這種方法在理論上是合理的,但在實踐中它是行不通的。

我看到的症狀如下:當代碼作為主項目的一部分執行時,預處理器值起作用。 當我運行子項目的應用程序時,它按預期運行。

我在主要目標中設置了-all_load linker 選項。 這是因為子項目中的類只在 nib 文件中提及。 如果沒有-all_load ,類會在主目標之外“優化”,因為編譯器錯誤地確定代碼是多余的。

我已將所有子項目鏈接到他們需要的.frameworks。

這是可以修復的還是這種方法注定要失敗? 如果沒有 static 庫,我還能如何管理這些項目? 其他開發人員在子項目上工作,static 庫方法可以防止我們互相干擾。

更新

回讀那個問題讓我覺得我應該早點休息一下。 這個問題並沒有很好地解釋這個問題(或者說沒有多大意義。)。 問題涉及到如何使用子項目來組織代碼。 我現在幾乎解決了這個問題。 當我完全解決它時,我可能會寫一篇博客文章。

由於 static 庫最終會“嵌入”到您的可執行文件中,因此您無需擔心它們的鏈接,就像您需要可執行文件一樣。

只需設置項目依賴項,以便首先構建依賴框架(以便正確填充 .framework/Headers 文件夾),然后是庫,然后是您的應用程序。 我已經在多個應用程序中成功地做到了這一點。

暫無
暫無

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

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