ld: symbol(s) not found for architecture i386

遇到ld: symbol(s) not found for architecture i386的问题

按照网上的例子 打包一个静态库,出现提示 没有i386框架, 我用的模拟器,但是我打包的那个静态库是真机的静态库,所以跑在模拟器上报错。

然后我删除静态库,重新运行一个模拟器的。跑一下 正常!


什么是动态库 什么是静态库 ?


http://www.myext.cn/webkf/a_11655.html


在实际的编程过程中,通常会把一些公用函数制成函数库,供其它程序使用,一则提搞了代码的复用;二则提搞了核心技术的保密程度。所以在实际的项目开发中,经常会使用到函数库,函数库分为静态库和动态库两种。和多数人所熟悉的动态语言和静态语言一样,这里的所谓静态和动态是相对编译期和运行期的:静态库在程序编译时会被链接到目标代码中,程序运行时将不再需要改静态库;而动态库在程序编译时并不会被链接到目标代码中,只是在程序运行时才被载入,因为在程序运行期间还需要动态库的存在。


  iPhone官方只支持静态库联编。


这个连接是如何创建  动态库/静态库(xcode6下)

http://www.cocoachina.com/ios/20141126/10322.html


推荐不是用动态库,使用静态库:你可能会出现这个错误:

dyld: Library not loaded: @rpath/MyFramework.framework/MyFramework

  Referenced from: /Users/woeasyhjlmac/Library/Developer/CoreSimulator/Devices/3E5E5D73-ACE7-4644-B9E4-9571F3B1569D/data/Containers/Bundle/Application/203C637D-93DF-4154-A837-A9D3FA5A0E16/TestMyUtil.app/TestMyUtil

  Reason: no suitable image found.  Did find:

/Users/woeasyhjlmac/Library/Developer/CoreSimulator/Devices/3E5E5D73-ACE7-4644-B9E4-9571F3B1569D/data/Containers/Bundle/Application/203C637D-93DF-4154-A837-A9D3FA5A0E16/TestMyUtil.app/Frameworks/MyFramework.framework/MyFramework: mach-o, but wrong architecture


这个错误,你只需要把  

Build Setting-->Linking 下的 改成这个
MACH_O_TYPE = staticlib



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值