一.为什么要加-all_load

在64位的mac系统和iOS系统下,链接器有一个bug,会导致只包含有类别的静态库无法使用-ObjC标志来加载文件。解决方法是使用-all_load或者-force_load标志。作用是加载静态库中的所有文件。不同的是-all_load是加载所有库。-force_load是必须指定具体的文件。

二.按照上述理解,那如果使用-ObjC,就一定要使用-all_load了。因为-all_load是用来解决bug的。那什么还会报错?

而且如果.a静态库中只有分类没有类的话这样也不行。这时候就要在添加了-ObjC的基础上再添加一行-all_load.
-all_load是专门处理-ObjC的一个bug的,用了-ObjC后,如果类库中只有category,没有类的话,这样category还是加载不进来。这时候再加入-all_load就是告诉链接器强制把所有的目标文件都加载进来。但是这样在导入多个.a文件的时候如果都这样做,可能会导致你的目标程序大小增大,而且往往容易引起一些冲突,而这些冲突往往你无法解决(常常出现在你链接的各种库中)。

三.该如何解决这个问题

比较好的解决办法就是在build settings的linker flags中添加两个:

1.-force_load

2..a文件的路径(例如在上面SDK: $(SRCROOT)/lib/libbaidumapapi.a

by lm

误加all_load引起的程序报错的更多相关文章

  1. 运行编译后的程序报错 error while loading shared libraries: lib*.so: cannot open shared object file: No such file or directory

    运行编译后的程序报错  error while loading shared libraries: lib*.so: cannot open shared object file: No such f ...

  2. WinDbg抓取程序报错dump文件的方法

    程序崩溃的两种主要现象: a. 程序在运行中的时候,突然弹出错误窗口,然后点错误窗口的确定时,程序直接关闭 例如: “应用程序错误” “C++错误之类的窗口” “程序无响应” “假死”等 此种崩溃特点 ...

  3. ListView 加载数据时 触摸报错

    问题起因: 在做一个从sd卡中加载数据显示在ListView中,由于数据可能比较多,考虑到用户体验,就使用AsyncTask来异步加载,数据一条一条的添加至ListView中. 开始数据比较少的时候, ...

  4. Window7中Eclipse运行MapReduce程序报错的问题

    按照文档:http://www.micmiu.com/bigdata/hadoop/hadoop2x-eclipse-mapreduce-demo/安装配置好Eclipse后,运行WordCount程 ...

  5. eclipse运行hadoop程序报错:Connection refused: no further information

    eclipse运行hadoop程序报错:Connection refused: no further information log4j:WARN No appenders could be foun ...

  6. WPF加载Winform窗体时 报错:子控件不能为顶级窗体

    一.wpf项目中引用WindowsFormsIntegration和System.Windows.Forms 二.Form1.Designer.cs 的 partial class Form1 设置为 ...

  7. 记录微信小程序报错 Unexpected end of JSON input;at pages/flow/checkout page getOrderData function

    微信小程序报错 Unexpected end of JSON input;at pages/flow/checkout page getOrderData function 这个报错是在将数组对象通过 ...

  8. 小程序-报错 xxx is not defined (已解决)

    小程序-报错 xxx is not defined (已解决) 问题情境: 这样一段代码,微信的小程序报错 is not defined 我 wxml 想这样调用 //wxml 代码 <view ...

  9. debug运行java程序报错

    debug运行java程序报错 ERROR: transport error 202: connect failed: Connection timed out ERROR: JDWP Transpo ...

随机推荐

  1. ubuntu怎样打开终端

    1.首先在桌面任意空白处,按CTRL+ALT+T 2.方法二

  2. Neon Lights in Hong Kong【香港霓虹灯】

    Neon Lights in Hong Kong Neon is to Hong Kong as red phone booths are to London and fog is to San Fr ...

  3. 2017 ACM-ICPC EC-Final ShangHai(思维乱搞赛)

    感觉全是思维乱搞题. Gym - 101775J Straight Master 给你n种扑克,你每次可以出连续的3 ~ 5 张,问你能否出完. Sample Input 2 13 1 2 2 1 0 ...

  4. Intellij Idea 创建JavaWeb项目

    折腾Tomcat折腾了两个晚上,第一个晚上怎么都进不了Tomcat的首页,第二个晚上进去了,但是新建的Web项目,在浏览器中运行,总是 Error on Apache Tomcat: The requ ...

  5. git 远程仓库 与本地项目 挂钩 全过程

    摘要:学了Android 快三个月了,依旧不会git,真的有些丢人.git是一个非常棒的团队协作的工具.其实也是分分钟的事情.Follow Me! Step 1 在码云上新建一个项目,作为远程仓库.里 ...

  6. WPF实现QQ群文件列表动画(一)

    QQ群大家都用过,先看下目前QQ的群文件列表容器的效果: 细心点大家就会发现,这玩意收缩和展开是带动画的,并不是很僵硬地直接收缩或者直接展开,毫无疑问,如果用WPF实现这样的效果,这里的最佳控件是Ex ...

  7. leetcode 【 Convert Sorted List to Binary Search Tree 】python 实现

    题目: Given a singly linked list where elements are sorted in ascending order, convert it to a height ...

  8. 利用python多线程模块实现模拟接口并发

    import requestsimport jsonimport threadingimport timeimport uuid class postrequests(): def __init__( ...

  9. selenium 浏览器驱动下载地址

    谷歌浏览器驱动下载http://chromedriver.storage.googleapis.com/index.html 火狐浏览器驱动下载http://ftp.mozilla.org/pub/f ...

  10. python 学习分享-实战篇简单的ftp

    import socket import os import time import pickle Basedb = os.path.dirname(os.path.dirname(os.path.a ...