Undefined symbols for architecture x86_64 解决之道

目前临时的解决办法是

1.把1.选中Targets—>Build Settings—>Architectures。

把build active architectures only 改为 NO。

2. 把最下面的Valid Architectures中的arm64参数删掉就可以了

或者:

双击Architectures,选择other,删除$(ARCH_STANDARD),然后增加armv7和armv7s(写上:armv7和armv7s) 即 :armv7和armv7s $(ARCHS_STANDARD_32_BIT)

ios的指令集有以下几种:

1,armv6,支撑的机械iPhone,iPhone2,iPhone3G及对应的iTouch

2,armv7,支撑的机械iPhone4,iPhone4S

3,armv7s,支撑的机械iPhone5,iPhone5C

4,arm64,支撑的机械:iPhone5S

机械对指令集的支撑是向下兼容的,是以armv7的指令集是可以运行在iphone5S的,只是效力没那么高罢了~

Architecture : 指你想支撑的指令集。

Valid architectures : 指即将编译的指令集。

Build Active Architecture Only : 只是否只编译当前实用的指令集。

========

如今是2014年初,其实4和4S的用户还是蛮多的,而iphone3之类的机械几乎没有了,所以我们的指令集最低必须基于armv7.

是以,Architecture的值选择:armv7 armv7s arm64(选arm64时须要最低支撑5.1.1,这块不太熟悉打听)

1,若是想本身的app在各个机械都可以或许最高效力的运行,则须要将Build Active Architecture Only改为NO,Valid architectures选择对应的指令集:armv7 armv7s arm64。这个会为各个指令集编译对应的代码,是以最后的 ipa体积根蒂根基翻了3倍。(若是不在乎app大小的话,应当如许做)

,若是想让app体积对峙最小,则现阶段应当选择Valid architectures为armv7,如许Build Active Architecture Only选YES或NO就无所谓了

时间: 2024-08-27 11:03:34

Undefined symbols for architecture x86_64 解决之道的相关文章

解决Undefined symbols for architecture x86_64: 报错 和 ld: warning: ld: warning: ignoring file警告

出现这种错误的情况: 用iphone5模拟器编译程序正常, 用iphone5s以上的模拟器编译出现Undefined symbols for architecture x86_64: 报错 和 ld: warning: ld: warning: ignoring file警告, 用真机编译正常... 网上找了很多解决方法都没办法解决..都是说更改bulid setting的一些相关设置..然后都木有什么卵用... 这里附上我的解决方法..其实也不是很麻烦...(我没有更改bulid settin

mac编译openresty报Undefined symbols for architecture x86_64

./configure --prefix=/usr/local/openresty --with-luajit --with-http_sub_module --add-module=../ngx_http_substitutions_filter_module-0.6.4 make时报错如下 -Wl,-rpath,/usr/local/openresty/luajit/lib -L/Applications/ngx_openresty-1.4.3.6/build/luajit-root/usr

Undefined symbols for architecture x86_64: ( linker command failed with exit code 1)

当出现  linker command failed with exit code 1 (use -v to see invocation) 的错误总结,具体内容如下: Undefined symbols for architecture x86_64: "_OBJC_CLASS_$_AppDelegate", referenced from: objc-class-ref in main.o ld: symbol(s) not found for architecture x86_6

【IOS】Undefined symbols for architecture x86_64

[IOS]Undefined symbols for architecture x86_64 先说一下这个问题的出现原因,字面意思就是某个符号不识别.一般问题都是由于引入了手动引入了某个lib,但是没有设置相应的编译选项或者没有引入其依赖的lib. 解决方法: 通过cocoapods引入lib,这样一般没有什么问题. 仔细查看文档,看看有什么依赖的lib没有引入,引入即可,或者加入相应的编译选项. 大体上就是上面两种,而且都很泛泛,下面说一下我遇到的具体问题. 开发环境:xcode 6.3.1

Undefined symbols for architecture x86_64: "_OBJC_CLASS_$_GiftAnimationView"

1> error 详情: Undefined symbols for architecture x86_64: "_OBJC_CLASS_$_GiftAnimationView", referenced from: _OBJC_CLASS_$_GiftFoAnimationView in GiftFoAnimationView.o "_OBJC_METACLASS_$_GiftAnimationView", referenced from: _OBJC_MET

iOS Undefined symbols for architecture arm64解决办法

Undefined symbols for architecture arm64:  "_OBJC_CLASS_$_YYCache", referenced from:      objc-class-ref in LFNetworking.o  "_OBJC_CLASS_$_AFHTTPRequestSerializer", referenced from:      objc-class-ref in LFNetworking.o  "_OBJC_CL

用xcode6.3编译早期工程时出现Undefined symbols for architecture x86_64错误的解决办法(转)

Xcode升级到5.1 新特性之一就是默认让所有App都通过64位编译器编译.原来在Xcode5.0.x的时候默认的Standard architectures只有(arm7,armv7s),到5.1之后默认就带上arm64的参数了. 目前临时的解决办法是 1.把1.选中Targets—>Build Settings—>Architectures.把build active architectures only 改为 NO. 2. 把最下面的Valid Architectures中的arm64

iOS模拟器:Undefined symbols for architecture x86_64

描述:为了适配iPhone 5s的64位处理器,在编译选项中加入了arm64架构.但是发现工程在真机上可以编译通过但是在模拟器上却未编过. 问题解决:经研究在编译选项中再加入x86_64架构,重新编译工程就可以在模拟器上编译成功了. 可以这样理解armv7 , armv7s对应真机的32位处理器,i386对应模拟器的32位模拟器:arm64对应真机的64位,x86_64对应模拟器的64位. 使用了静态库,真机测试时正常,而在执行for iOS Device测试时报这个错误,很可能是因为静态库支持

Undefined symbols for architecture x86_64

Xcode升级到5.1 新特性之一就是默认让所有App都通过64位编译器编译.原来在Xcode5.0.x的时候默认的Standard architectures只有(arm7,armv7s),到5.1之后默认就带上arm64的参数了. 目前临时的解决办法是 1.把1.选中Targets—>Build Settings—>Architectures. 把build active architectures only 改为 NO. 2. 把最下面的Valid Architectures中的arm6