iOS关于armv7,armv7s,arm64,i386,x86_64等问题

iOS测试分为模拟器测试和真机测试,处理器分为32位处理器,和64位处理器,

模拟器32位处理器测试需要i386架构,(iphone5,iphone5s以下的模拟器)

模拟器64位处理器测试需要x86_64架构,(iphone6以上的模拟器)

真机32位处理器需要armv7,或者armv7s架构,(iphone4真机/armv7,      ipnone5,iphone5s真机/armv7s)

真机64位处理器需要arm64架构。(iphone6,iphone6p以上的真机)

project -> target -> building setting -> Arhitectures 设置


debug属性设置为no的时候,会编译支持所有架构的版本,编译的速度会变慢,设置为yes 的时候,只编译当前的architecture版本,编译速度快。

一般情况下,debug 设置为yes,release为no,这样发行版本能适应不同设备,


Undefined symbols错误的解决方案整理

      .h(声明文件)<————>.m(实现文件)

                         .h<————>.c

                    .hpp<————>.cpp

     1》在源代码中,找不到一个标识符的声明,无论是变量名,类名,或者是方法名,编译的时候会得到

Use of undeclared identifier ‘XXX’错误。

2》在源代码中,如果编译器找到他的声明,却不知道他怎么实现的,或者说目标文件里没有这个实现,则就会出现链接错误。

Undefined symbols for architecture armv7(armv7处理器架构指令集下,符号未定义):

  "_XCloseIM", referenced from:

      dlib::gui_core_kernel_2_globals::event_handler_thread::~event_handler_thread() in gui_core_kernel_2.o

编译原理,在源码词法分析,语法分析以及编译的整个过程中,会生成符号表,所有标识符都会放到这个表中。 如果链接的时候,找不到具体的实现,就会出现这个错误。可能的原因有:

  • 引入了需要用到的库的头文件,却没有链接正确的实现库。因为Xcode本身所支持的库是Static Library,即.a的方式,.a的文件里只有实现,使用的时候需要另外引入头文件,那么就有可能把头文件放进来,没有放.a或放入了错误的版本。
  • Build Settings或者Build Phases配置有误。检查Build Phases里的Link Binary With Libraries和Build Settings里的几项Search Path。
  • 从外部导入的文件没有加入到特定的target中。这个正是我整理这篇日志之前遇到的,将.a、.m、.framework等引入到工程当中,却没有勾选当前Build的target,会出现这个问题,可以选中特定的文件,在右侧边栏中选中target。
  • 未包含处理器架构指令集的问题。报错时的提示一般都是“Undefined symbols for architecture armv7”之类的,而“for architecture armv7”就是说没有支持armv7,在Build settings里architecture相关的几项需要配置正确。

当源码运行出现这种错,解决办法是target-->build setting-->compile sources as 把混编语言改回objective-c 就可以了




Undefined symbols for architecture armv7:

  "_UIApplicationMain", referenced from:

      _main in main.o

  "_OBJC_CLASS_$_UIResponder", referenced from:

      _OBJC_CLASS_$_AppDelegate in AppDelegate.o

  "_OBJC_METACLASS_$_UIViewController", referenced from:

      _OBJC_METACLASS_$_ViewController in ViewController.o

  "_OBJC_CLASS_$_UINavigationController", referenced from:

      objc-class-ref in AppDelegate.o

  "_OBJC_CLASS_$_UIWindow", referenced from:

      objc-class-ref in AppDelegate.o

  "_OBJC_CLASS_$_UIScreen", referenced from:

      objc-class-ref in AppDelegate.o

  "_OBJC_METACLASS_$_UIResponder", referenced from:

      _OBJC_METACLASS_$_AppDelegate in AppDelegate.o

  "_OBJC_CLASS_$_UIViewController", referenced from:

      _OBJC_CLASS_$_ViewController in ViewController.o

ld: symbol(s) not found for architecture armv7

clang: error: linker command failed with exit code 1 (use -v to see invocation)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/458628.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DebugView 调试入门

参考链接&#xff1a;http://blog.csdn.net/jiankunking/article/details/44984487 软件下载地址&#xff1a;点击打开链接 debugview 可以捕获程序中由TRACE(debug版本)和OutputDebugString输出的信息。支持Debug、Release模式编译的程序&#xff08;即该软件捕获的是exe直接运…

AJAX只支持字符类数据返回,不支持文件下载

如题转载于:https://www.cnblogs.com/caicaizi/p/5000363.html

Xcode中指令集相关选项

Xcode中指令集相关选项&#xff08;Build Setting中&#xff09; &#xff08;1&#xff09;Architectures Space-separated list of identifiers. Specifies the architectures (ABIs, processor models) to which the binary is targeted. When this build setting specifies…

DebugView使用笔记

1. 什么是DebugView? 它是Sysinternals公司的系列调试工具。可以捕获程序中由TRACE()和OutputDebugString输出的信息。 2. C需要完成哪些工作呢&#xff1f; 将打印的信息用OutputDebugString输出&#xff0c;示例&#xff1a; [cpp] view plaincopy #include "stdio.h&q…

DebugView的使用[通用汇总]

DebugView是一款免费辅助工具&#xff0c;用来输出捕捉OutputDebugString()函数输出的信息等。 1 下载 http://technet.microsoft.com/en-us/sysinternals/bb896647 1.1 介绍DebugView http://www.vcfans.com/2008/11/trace-show-about-a-tool-debugview-sent-a-message-to-tra…

Android 通信 EventBus

参考&#xff1a; Android 框架炼成 教你如何写组件间通信框架EventBusAndroid EventBus源码解析 带你深入理解EventBusAndroid EventBus实战 没听过你就out了快速Android开发系列通信篇之EventBusEventBus是一个publish/subscribe (发布 / 订阅) 消息的总线&#xff0c;简化了…

WIFI无线路由器的五种工作模式

http://www.360doc.com/content/12/0814/08/10560798_230064460.shtml

iOS面试题1

而技术开发面试&#xff0c;问一些技术相关的问题是必须的&#xff0c;最新的技术可能人人都趋之若鹜&#xff0c;但有些原理和基础的也希望都有了解。 这里整理了一些iOS相关的面试题&#xff0c;&#xff08;可能都已经老掉牙&#xff09;但是也想跟大家分享下&#xff01; 如…

高质量JAVA代码编写规范

1. Java 命名约定   除了以下几个特例之外&#xff0c;命名时应始终采用完整的英文描述符。此外&#xff0c;一般应采用小写字母&#xff0c;但类名、接口名以及任何非初始单词的第一个字母要大写。 1.1 一般概念   * 尽量使用完整的英文描述符   * 采用适用于相关领域的…

MFC中绘制动态曲线

参考&#xff1a; http://blog.csdn.net/zang141588761/article/details/50536788 [转载]MFC中画直线和曲线 一、画直线要想在MFC中画出有颜色的线条&#xff0c;首先就要设置DC的画笔&#xff0c;我们可以按如下方法来设置画笔&#xff1a;第一步&#xff1a;在View类中添加…

博客地址 RSS地址

博客地址 RSS地址 OneVs Den http://onevcat.com/atom.xml 破船之家 http://beyondvincent.com/atom.xml NSHipster http://nshipster.cn/feed.xml Limboy 无网不剩 http://feeds.feedburner.com/lzyy 唐巧的技术博客 http://blog.devtang.com/atom.xml Lex iOS notes http://i…

2015.11.27---Java

public class star{public static void main(String[] args) {System.out.print("ha");}}转载于:https://www.cnblogs.com/supermeimei/p/5001922.html

QT之深入理解QThread

QT之深入理解QThread 理解QThread之前需要了解下QThread类&#xff0c;QThread拥有的资源如下&#xff08;摘录于QT 5.1 帮助文档&#xff09;&#xff1a;在以上资源中&#xff0c;本文重点关注槽&#xff1a;start()&#xff1b;信号&#xff1a;started()、finished()&#…

常见人事问题

整体素养的常见问题 一、请你自我介绍一下你自己&#xff1f; &#xff08;面试官目的&#xff1a;深度了解求职者&#xff0c;看求职者基本的沟通和自我认知能力&#xff09; NO: 只说姓名、年龄、爱好等基本的信息后就没了。只重复简历里的内容&#xff0c;如工作经验就…

springMVC数据封装成POJO

springMVC把前台的数据封装为POJO与struts2的封装形式不同。struts2需要在控制器声明需封装的POJO&#xff0c;而springMVC不需要任何准备工作&#xff0c;只需在相应的方法的参数中加上需封装的POJO&#xff0c;当用户提交表单时&#xff0c;springMVC会根据表单中dom元素的na…

QT输入输出(四)之 QProcess

QProcess Qt提供了一个QProcess类用于启动外部程序并与之通信.这个类是异步工作的&#xff0c;而且在后台执行&#xff0c;这样用户界面就可以始终保持响应。 启动一个新的进程的操作非常简单,只需要将待启动的程序名称和启动参数传递给start()函数即可. 例如&#xff1a; QObj…

iOS 推送 逻辑

推送 阶段一&#xff1a;Provider[服务端]把要发送的消息&#xff0c;目的IOS设备标识打包&#xff0c;发送给APNS&#xff1b; 阶段二&#xff1a;APNS在自身的已注册Push服务的IOS设备列表中&#xff0c;查找有相应标识的IOS设备&#xff0c;并将消息发送到IOS设备&#xff1…

正则提取的url中的域名以及替换域名的方法 preg_match()和preg_replace()

<?php //网站的url$url http://www.baidu.com/index.php;//正则表达式$reg /(http):\/\/([^\/])/i;preg_match($reg, $url,$res);/** $res的结果array (size3)0 > string http://www.baidu.com (length20)1 > string http (length4)2 > string www.baidu.com (…

音视频开发

command s 截模拟器的屏幕 MP.4只是一个容器 H.264 H.263是真正的格式 H.265正在测试中 avi H.264 H.263 视频解码&#xff1a;将H.263 H.264转换为视频和音频的格式 视频编码&#xff1a; 解码&#xff1a;硬解码&#xff1a;GPU做的解码 CPU做除了图片以外的&#…

10.11 安装pod

原文地址&#xff1a;http://www.jianshu.com/p/5fc15906c53a 感谢。 更新升级10.11 cocoapods安装出问题最简单的解决方法 这是因为10.11把cocoapods直接干掉了 sudo gem install -n /usr/local/bin cocoapods 再加一句&#xff0c;完美解决 sudo xcode-select --switch /App…