在自己制作静态库的时候有时在使用的时候会出现file was built for archive which is not the architecture being linked (i386)这个问题,会出现以下类似的报错

ld: warning: ignoring file /Users/valuelabs/Desktop/DruvaProject/libraries/libnetUtils.a, file was built for archive which is not the architecture being linked (i386) Undefined symbols for architecture i386:
"_OBJC_CLASS_$_netUtils", referenced from: objc-class-ref in ViewController.o ld: symbol(s) not found for architecture i386 clang: error: linker command failed with exit code 1 (use -v to see invocation)

这个在制作的时候需要注意几个事项的,以前的那个教程《xcode如何创建静态库.a文件并使用》并没有说这些事项,现在补充一下。

这个也是出现上面报错的解决办法

一、设置Architecture的类型

屏幕快照 2015-04-27 11.09.07.png

首先把 Build active Architecture only 设置为 NO;

然后把 Valid Architectures 补全

二、合并静态库

选择 run 的时候两个都可以,但是是有差别的,如果是模拟器生成的静态库,就只能在模拟机上运行,如果是链接真机或者选择的真机生成,那么生成的库就只能在真机上使用,为了让生成的库在真机和模拟机上面都可以使用,就需要手动合并。怎么合并请看这个文章《合并静态库

屏幕快照 2015-04-27 11.08.23.png

点击查看原图

三、找到生成的库

屏幕快照 2015-04-27 11.09.50.png

run 之后,如果是选的模拟器生成的静态库在右边那个 full path 里面是找不到的,需要去掉那个后面的.a文件,然后进入到文件夹,选择上级文件夹,使用下面的那个文件夹里面的.a文件

屏幕快照 2015-04-27 11.09.42.png


☟☟可点击下方广告支持一下☟☟

最后修改:1970 年 01 月 01 日
请我喝杯可乐,请随意打赏: ☞已打赏列表