2008-10-30 370 views
4

我試圖在iPhone上集成Picasa API,編譯正常,但在啓動時看到以下錯誤。如何將Picasa API集成到我的iPhone應用程序中?

使dyld:庫未加載:@loader_path /../框架/ GData.framework /版本/ A /的GData 引用自:/用戶/ jacksu /庫/應用程序支持/ iPhone模擬器/用戶/應用/ 9A7E3F54- 022F-4771-BD6A-E458F5545144/PicasaTest.app/PicasaTest 原因是:image not found

我不確定可能是什麼問題。

我從Source/build/Debug/GData.framework導入了GDataFramework。我在Source目錄下建立了這個項目。

回答

3

如果保持GData.framework,那麼你需要確保它不是必需的框架,而是一個薄弱的框架。一薄弱的框架手段,應用程序在第一次啓動時不會需要它,只是在引用對框架的函數調用時嘗試加載它,但在您的情況下,因爲庫是靜態編譯的,所以調用的函數將被解析而無需加載框架。 (注意:目標C消息是在運行時函數調用...)

要做到這一點嘗試以下:

  • 雙擊應用目標(如前)

  • 看一般標籤此時

  • 找到GData.framework,它從「需要」到「弱」

改變0

你可能會收到編譯錯誤不添加框架,因爲GDATA頭文件不被解決。你可以有也把一個鏈接到「頭文件搜索路徑」比你並不需要在所有添加框架「頭文件」。

無關的上面,我忘了一件事以前。將-ObjC添加到「其他鏈接器標誌」。

+0

嗨,當我編譯「的GData」項目它會顯示錯誤和許多文件丟失。請你能建議嗎? – 2015-10-23 08:01:49

2

你不能在iPhone上使用動態庫(當然,除了Apple框架之外)。所有庫必須靜態鏈接。

3

iPhone不允許加載動態庫。您正在使用的外部庫/框架必須構建爲靜態庫,並在構建期間編譯到您的應用程序中。

爲了做到這一點,首先您需要創建GDATA的靜態庫版本:

  • 添加一個新的目標於GData項目(比如GDataIPhoneLibrary)

    • 你這樣做通過右鍵單擊目標並選擇「添加新目標」。在對話框中,從IPhoneOS - Cocoa Touch部分選擇靜態庫模板。
  • 然後,您需要將源.m文件拖到目標的「編譯源」部分。 (確保不要拖動.h文件,否則會收到警告。)另外,如果您只是爲Picasa構建,則命令和照片組下的文件應該足夠。也不要添加單元測試和測試工具組。

  • 接下來轉到項目下的框架和庫組,然後添加基礎框架,這是Cocoa Touch的必要框架。當你添加這個時,確保只檢查你新創建的目標是否被使用。 (你不想弄糟的GData的Mac版)

  • 現在的目標下,選擇GDataIPhoneLibrary創建並單擊按鈕(i)(或只需雙擊它)

  • 在Build標籤搜索找到「頭搜索路徑」爲「頭」,一旦你添加以下(爲libxml2的)作爲頭路

/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/ iPhoneOS2.1.sdk/usr/include/libxml2

  • 現在您關閉對話框。

  • 選擇您的活動目標是GDataIPhoneLibrary

  • 設置你的ActiveSDK到工程 - > SetActiveSDK - >模擬器 - IPhone OS 2。1

  • 現在,你準備好了 - >剛擊築,你將有默認的libGDataIPhoneLibrary.a文件。

現在可以將這個靜態庫添加到您的IPhone應用程序:

  • 轉到自己的應用項目,並選擇目標(你可能有一個),並雙擊它打開對話框。

  • 在Build標籤搜索「庫」,一旦找到「庫搜索路徑」路徑添加到您剛纔建在上一步中的庫。

  • 然後添加「-lGDataIPhoneLibrary」(省略的lib前綴和.A擴展名)「其他鏈接器標記」選項(您可以通過在搜索框中搜索鏈接找到。

現在這應該有希望建設。希望這對你的作品。

乾杯, 凱雷姆

相關問題