簡體   English   中英

沒有為架構i386找到iOS符號

[英]iOS symbols not found for architecture i386

通過http://www.icodeblog.com/2011/04/07/creating-static-libraries-for-ios/后,我創建了一個靜態庫。 為了測試這個庫我創建了一個新項目並將靜態庫拖到項目上並嘗試測試它的一個方法。 但它給了我錯誤“”_OBJC_CLASS _ $ _ MyLib“,引自:”。 MyLib是我創建的庫的名稱。

我創建靜態庫的步驟。 1.創建了一個新的Xcode項目。 2.選擇創建cocoa touch靜態庫的選項。 3.在MyLib.h中編寫了兩個函數,並為fibonacci系列編寫了一個實現,並為生成一個數字的階乘編寫了其他函數。 3.構建項目並單擊MyLib.a文件,並在finder中顯示部分。 4.將MyLib.a文件和MyLib.h拖到名為MyLib的新文件夾中。

請幫忙

在為iOS構建庫,框架或應用程序時,XCode將僅編譯目標的構建設置中指定的體系結構的目標代碼。 XCode也只鏈接到內置指定體系結構的二進制文件。

在XCode中,如果選擇目標,則可以在構建設置選項卡下看到目標的體系結構。 它將包含arm6,arm7和i386等值。

在iOS模擬器中運行代碼時,您在桌面上運行代碼,即i386架構。

當在設備上運行時,二進制文件具有為該體系結構構建的“切片”。 如果二進制文件中不存在正確的體系結構“切片”,則它將不會運行。

如果您在模擬器中運行iOS應用程序時遇到缺少的i386體系結構錯誤,則需要確保您的應用程序及其所有依賴庫都是為i386體系結構構建的。

還要檢查目標的構建設置中的“僅構建活動體系結構”是否為NO。

如果您因為沒有源而無法重建依賴庫,則必須在支持arm6或arm7體系結構的設備上進行測試。

當我嘗試在cpp文件中添加ac頭時,我有同樣的問題,如下所示

//in c++ header file
#import "cHeader.h"

經過漫長的掙扎,我學會了在cpp文件中導入c頭,你需要這樣做:

//in c++ header file
extern "C"{
    #import "cHeader.h"
}

我的問題解決了。

我有完全相同的問題,當我在這個帖子上閱讀答案時,終於能夠在Xcode 4.5和iOS 6中使用它。 @idz的答案效果很好但是你不得不在你的應用程序項目中包含庫項目然后將其設置為依賴項。

步驟1-8非常簡單明了。 您還需要確保標題搜索路徑項目設置准確。 祝好運!

XCode 4.3:靜態庫生成

暫無
暫無

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

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