亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

iOS編譯庫文件時出現的問題

標簽:
Android iOS

1. 警告:directory not found for option  “xxxxxxxx”   文件路径未找到 **

  • 选择工程, 编译的 (targets)

  • 选择 Build Settings 菜单

  • 查找 Library Search Paths 和 Framework Search Paths, 删掉编译报warning的路径即OK
    详细步骤图文参考

2. missing required architecture i386 in file “xxxxxx/.a” 说明你的这个library文件是为Device (ARM架构)设计的,不支持Simulator (i386架构)

相关知识
参考stackoverfollow
arm架构问题
手机的架构是为arm架构

  • armv6
    iPhone
    iPhone2
    iPhone3G
    第一代和第二代iPod Touch

  • armv7
    iPhone4
    iPhone4S
    armv7s
    iPhone5
    iPhone5C

  • arm64
    iPhone5S

现在app store规定提交的应用必须包含arm64.

xcode里Architectures这个属性

这是指你想支持的指令集,比如:armv7,armv7s,或者可以用$(ARCHS_STANDARD_32_BIT)这样的参数

该编译选项指定了工程将被编译成支持哪些指令集,支持指令集是通过编译生成对应的二进制数据包实现的,如果支持的指令集数目有多个,就会编译出包含多个指令集代码的数据包,造成最终编译的包很大。

xcode工程里有Build Active Architecture Only这个属性

这个属性设置为yes,是为了debug的时候编译速度更快,它只编译当前的architecture版本。
而设置为no时,会编译所有的版本。

编译出的版本是向下兼容的,比如你设置此值为yes,用iphone4编译出来的是armv7版本的,iphone5也可以运行,但是armv6的设备就不能运行。

所以,一般debug的时候可以选择设置为yes,release的时候要改为no,以适应不同设备

library not found for -lMobClickLibrary

在other link flag 里删除-l "MobClickLibrary"

我遇到的问题

  1. 微信demo下载下来运行出现 missing required architecture i386 in file “xxxxxx/libWeChatSDK.a”问题,用终端查看了一下这个库文件只支持 armv7,arm64

在终端里查看你的.a库是不是支持i386

解决方法:

  • 找找看有没有支持i386的库文件(下载SDK,要下载的sdk里面的那个libWeChatSDK.a才有支持i386的,里面有两个文件夹 WeChatSDK_1.5WeChatSDK_1.5_OnlyIphone,选择WeChatSDK_1.5)

    WeChatSDK_1.5


    有i386的libWeChatSDK.a

  • 使用真机测试

2.解决架构问头后在工程里出现了以下问题:
Undefined symbols for architecture x86_64:
"operator delete+[WeChatApiUtil EncodeBase64:] in libWeChatSDK.a(WeChatApiUtil.o)

屏幕快照 2014-12-11 下午3.43.16.png

解决方法:



作者:齐滇大圣
链接:https://www.jianshu.com/p/3f87f024b573


點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消