2010-06-06 40 views
2

這是將靜態庫包含到iPhone或iPad應用程序中的最佳方法嗎?將靜態庫附加到iphone/ipad應用程序

我可以選擇

  • 編譯庫提供合適的平臺,建立一個庫文件與ar實用程序,然後作爲一個框架添加到項目
  • 包括圖書館.C的源/ .h並將它們與應用程序一起編譯

第一種方法似乎更簡單,因爲我不會在乎管理我想包含的庫的所有特定設置,但是如何創建庫bot機器人h用於iPhone和iPad,並允許xcode在鏈接時使用正確的庫?

第二種方法似乎更復雜,因爲xcode會考慮編譯我的應用程序和庫(使用不同的設置),那我應該怎麼走?我可以輕鬆地添加lib的源代碼,但是我必須包含make腳本以允許xcode使用它們以正確的方式構建。

有關如何進行的任何建議?我試圖包括的圖書館是libssh。 (我知道這個庫當然已經編譯並在iPhone上成功嘗試過了)

在此先感謝。

回答

1

我會去第一種方法。

您應該建立兩個不同版本的庫,一個用於iPhone,一個用於iPad。這些必須是包含不同架構的胖庫(用於iPhone 3G的armv6,用於iPhone 3GS的armv7,用於iPhone模擬器的i386,用於iPad的另一個用於armv7和i386)。

基本上你會爲iPhone構建三個不同的版本,然後使用lipo工具將它們合併在一個胖文件中。

然後,您再爲iPad構建兩個不同的版本,並使用lipo將它們合併在一起。請注意,您不能在iPad上重複使用原本爲iPhone編譯的armv7和i386版本,因爲您需要使用屬於兩個不同SDK(3.1爲iPhone,3.2爲iPad)的編譯器構建它們。

我不知道如果lipo會允許你合併成一個文件兩個armv7或兩個i386版本的庫沒有抱怨。你可能想嘗試一下,因爲在這種情況下,你可以在整個過程結束時只提供一個胖庫。

相關問題