定位armv7时出现XCode链接错误
我已经花费了无数个小时来解决这个问题,利用谷歌搜索和其他Stack Overflow问题无济于事.
我有一个iPhone / iPad通用应用程序,当目标是armv6时似乎编译得很好.但是,当设备是iPad时,我收到此警告: warning: building for SDK 'Device - iPhone OS 3.2' requires an armv7 architecture. 奇怪的是,尽管有这样的警告,该应用仍然在iPad上运行良好.但是,在这种情况下,我确实希望以“正确的方式”做事.当我将目标架构切换到armv7时,我得到链接错误: "___restore_vfp_d8_d15_regs",referenced from: *redacted* "___save_vfp_d8_d15_regs",referenced from: *redacted* ld: symbol(s) not found collect2: ld returned 1 exit status 错误的“编辑”部分是对我想要链接的静态库的引用. 这是我从网上的许多建议中尝试过的.这些都是不止一次被提出而没有任何解释,这使我相信没有人完全理解这个问题:
这会产生错误“找不到-lcrt1.3.1.o的库”
我的LIBRARY_SEARCH_PATH已经为空,所以这似乎不相关.
我在UIKit头文件中遇到语法错误.错误是“’AT_NAME’令牌之前的语法错误.”该行是“UIKIT_EXTERN @interface UILocalizedIndexedCollat??ion:NSObject”. 另一个项目使用相同的目标设置编译得很好,这真的让我质疑我的理智.我可以处理一个损坏的XCode项目吗? 如果有人知道实际发生了什么并有参考或不介意解释它,我会非常感激. 干杯! 解决方法
ARMv7和ARMv6之间的VFP以各种方式不同.在ARMv7中,通常最好使用NEON.问题是您的静态库依赖于ARMv6中的VFP – 您需要在ARMv7上编译库或将整个应用程序保留在ARMv6中.
恢复到GCC 4.0是愚蠢的 – 除非Apple向后推送,否则ARMv7支持基本上不存在. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |