2012-10-01 76 views
3

我想創建一個簡單的靜態庫,並將其添加到另一個項目。我找到了幾個教程來解釋如何做到這一點,而且看起來每個教程都有些不同。 most recent one I found似乎是最簡單的,所以這是我重新創建的。可可觸摸靜態庫與Xcode 4.5

當我嘗試構建項目時,我正在訪問該庫,我得到一個「Apple Mach-O鏈接程序警告 - 忽略[我的.a文件],缺少文件[my .a文件]中所需的體系結構i386, (2片)「以及」Apple Mach-O鏈接器錯誤「兩次。我猜測問題在於它忽略了我的.a文件,這就是導致錯誤的原因,所以修復警告也應該注意錯誤。該主題中的一些用戶似乎已經在此發佈了關於此問題的信息,但似乎並未對如何解決該問題做出任何迴應。有誰知道這個教程正在拋出什麼導致這些錯誤?

+0

那個靜態庫是你的嗎?你寫了它並將它包含到你的項目中? –

+0

是的,我試圖按照鏈接中的教程來創建我自己的靜態庫,然後在第二個項目中(我也正在創建)實現其中的方法,同樣也可以按照教程中的步驟進行操作。 – GeneralMike

+0

我有同樣的問題。你並不孤單:) –

回答

0

接受的答案here爲我工作 - 特別是步驟1-8部分。希望它也適用於其他人。

0

在您的靜態庫代碼中,轉到項目的目標。構建設置 - >體系結構 - >有效體系結構,打開該值並點擊「+」按鈕並添加「i386」。

確保你做了一個完整的清理(command + alt + shift + K)並重建。

將您的庫複製回您的主項目並編譯它。

讓我知道這是否有效。

+0

沒有喜悅,i386還沒有在那裏,但添加它,做乾淨+重建+重新導入沒有幫助。 – GeneralMike

1

的Xcode 4.5不支持的ARMv6,刪除和庫文件將被創建...

https://developer.apple.com/library/mac/#releasenotes/DeveloperTools/RN-Xcode/_index.html

一般:iOS的 這Xcode的版本不產生ARMv6的二進制文件。 12282156 最低部署目標是iOS 4.3。 12282166 在此Xcode版本中,自動佈局爲新用戶界面文檔(情節提要和筆尖文件)打開。由於Auto Layout需要iOS 6.0,因此在早期iOS版本中使用此類用戶界面文檔會導致崩潰或其他未定義的行爲。 12289644 爲了讓您的應用能夠在較早的iOS版本上運行,請在其用戶界面文檔中關閉「自動佈局」。

+0

爲了清楚起見,你的意思是將它從Build Settings標籤中的「Valid Architectures」列表中移除,以便用於我的庫目標,如果是這樣,那麼它就不存在; IIRC I直到這個版本的Xcode沒有製作好我的庫,所以它在創建項目時一定會自行忽略它。 – GeneralMike

+0

正是,它的好處在於依靠「應該是」 – Bennya

+0

,您還需要檢查庫項目是否是項目的**依賴關係**並且包含**庫** ... – Bennya