2015-01-21 47 views
2

我有2個靜態庫(.a)文件。這兩個文件基本上是相同的庫。 一個爲建築armv7而建,另一個爲建築i386建造。 是否有可能將這兩個庫合併爲一個文件? 不幸的是,我沒有任何源代碼來重新構建它們。如何合併兩個爲armv7和i386構建的.a文件?

預先感謝您:d

回答

12

你需要了解什麼可以與lipolibtool命令行工具,這兩者都與Xcode中來完成。

Here's a tutorial that might get you started上的過程。

的步驟包括像:

  1. lipo -info libFirst.a libSecond.a找出架構在.a文件
  2. lipo -extract armv7s libFirst.a -o libFirst_armv7s.a提取您想
  3. libtool -static libFirst_armv7.a libSecond_armv7.a -o libCombined_armv7.a的架構體系結構相關的.a文件合併成一個
  4. lipo -create libCombined_armv7.a libCombined_armv7s.a -o libCombined.a這給你最後的.a庫。

而這裏的some older documentation from Apple描述瞭如何使用這些工具來創建組合靜態庫。

+0

非常感謝!這就是我一直在尋找的! – Joey 2015-01-21 01:33:27

+0

我剛剛編輯鏈接,因爲它不正確。如果其他人感興趣,這裏是url。它真的幫助我了https://cvursache.com/2013/10/06/Combining-Multi-Arch-Binaries.html – gikygik 2016-04-12 18:41:26

+0

另外'lipo -info'命令提供了一個庫檔案是否很胖的信息。這意味着如果您即將合併的檔案文件不夠肥厚,您可以直接使用#4。 – 2016-08-01 14:43:31