AFAIK,较旧版本的Xcode如果链接了多次,则无法链接静态库.我认为存在一种重复的目标文件或符号问题.

最近,我意识到Xcode5不再在静态库的重复链接上报告相关错误.这是我的测试.

>我写了3个Objective-C类,在单独的项目中分别命名为s1,s2,s3.

>每个都被编译成s1.o,s2.o,s3.o,

>并最终存档到s1.a,s2.a,s3.a.

> s2与s1链接(合并),而s3与s2和s1链接(合并).

终于我得到了这些.a文件.

Eonil$ar -tv libs1.a

rw-r--r-- 501/20 64 Aug 3 18:38 2014 __.SYMDEF SORTED

rw-r--r-- 501/20 5528 Aug 3 18:38 2014 s1.o

Eonil$ar -tv libs2.a

rw-r--r-- 501/20 120 Aug 3 18:38 2014 __.SYMDEF SORTED

rw-r--r-- 501/20 5872 Aug 3 18:38 2014 s2.o

rw-r--r-- 501/20 5528 Aug 3 18:38 2014 s1.o

Eonil$ar -tv libs3.a

rw-r--r-- 501/20 224 Aug 3 18:38 2014 __.SYMDEF

rw-r--r-- 501/20 5872 Aug 3 18:38 2014 s3.o

rw-r--r-- 501/20 5528 Aug 3 18:38 2014 s1.o

rw-r--r-- 501/20 5872 Aug 3 18:38 2014 s2.o

rw-r--r-- 501/20 5528 Aug 3 18:38 2014 s1.o

那些相同的.o文件都是重复的.

我编写了一个p1项目,该项目是命令行可执行文件,并将其与所有s1.a,s2.a,s3.a链接.我预计会有一些复制错误,但它只是构建并运行良好!

这些重复的静态库链接在Xcode中发生了什么?

ios 重复引用 静态库_iOS-如果静态库(.a)包含重复的目标文件(.o),会发生什么?相关推荐

  1. python字符串重复_【python】判断一个字符串是否包含重复字符?

    题目:判断一个字符串是否包含重复字符.例如good则包含,abc则不包含. 分析:哈希法. code: (1) strs = 'Good' hashTable = dict() listStrs = ...

  2. 为什么一些linux基础静态库(如libc.a)里面包含那么多目标文件.o呢? 为什么不将这些.o文件进行提前糅合呢?

    我们来看个现象: taoge@localhost Desktop> ar -vt /usr/lib/libc.a | grep printf.o rw-r--r-- 399/399 28564 ...

  3. 程序员的自我修养--链接、装载与库笔记:静态链接

    1. 空间与地址分配 对于链接器来说,整个链接过程中,它就是将几个输入目标文件加工后合并成一个输出文件.测试代码a.c和b.c内容如下: // a.c extern int shared;int ma ...

  4. 静态链接之与静态库的链接

    1. 静态库 链接器读取一组可重定位目标文件,并把它们组合称为一个单一的可执行文件.可以通过将所有相关的可重定位目标文件打包成为一个单独的文件,这个文件就叫做静态库.在链接时,链接器只拷贝被程序引用的 ...

  5. C++声明、定义、类的定义、头文件作用、头文件重复引用

    转载至:点击打开链接 C++声明.定义.类的定义.头文件作用.头文件重复引用,不具名空间 转自:http://www.cnblogs.com/rocketfan/archive/2009/10/02/ ...

  6. #ifndef/#define/#endif 防止该头文件被重复引用

       转载自:http://blog.csdn.net/abc5382334/article/details/18052757    想必很多人都看过"头文件中的 #ifndef/#defi ...

  7. 程序员的自我修养--链接、装载与库笔记:目标文件里有什么

    编译器编译源代码后生成的文件叫做目标文件.目标文件从结构上讲,它是已经编译后的可执行文件格式,只是还没有经过链接的过程,其中可能有些符号或有些地址还没有被调整.其实它本身就是按照可执行文件格式存储的, ...

  8. 链接装载与库:第三章——目标文件里有什么(ELF文件结构)

    文章目录 一.ELF文件的格式 二.ELF文件是什么样的 三.挖掘SimpleSection.o 3.1 代码段 3.2 数据段和只读数据段 3.3 BSS段 3.4 其他段 3.5 自定义段 四.E ...

  9. 《程序员的自我修养-链接-装载与库》第三章 目标文件里有什么(1)

    目录 0.引言 1.目标文件的格式 1.1 目标文件的格式及ELF文件格式的文件的分类 1.2 目标文件与可执行文件格式的小历史 2.目标文件是什么样的 2.1 程序与目标文件简介 2.2 BSS历史 ...

最新文章

  1. 倒计时1天!CTA核心技术及应用峰会报名通道即将关闭(附参会攻略)
  2. python绘制动态模拟图-Python 模拟动态产生字母验证码图片功能
  3. BZOJ4698: Sdoi2008 Sandy的卡片
  4. IIS应用池保持激活工具开发
  5. springcloud 相同服务名_SpringCloud系列之SpringCloud Stream
  6. 静态工具类注入service的方法
  7. typeahead有什么作用_typeahead使用配置参数。
  8. 如何使用PowerShell在Azure中创建SQL虚拟机
  9. Oracle 的成功无法复制,国产数据库该如何突破?
  10. 啊D注入工具是一种主要用于SQL的注入工具
  11. iphone 文件夹连接服务器 百度云,iPhone与电脑共享文件夹
  12. 关于 npm publish问题
  13. 鼠标右键点击文件夹、bat文件、txt文档,指针出现假死转圈的解决方法(Adobe Acrobat右键邮件选项引起的win10假死)
  14. 工资倒挂 你怎么看?工作三年薪资不如毕业生!
  15. Git --- Git Gui
  16. 面试:如何应对人事的面试
  17. adonis-rest - 基于AdonisJs的Restful API基础构件
  18. python----银行卡类的编程
  19. 移动硬盘/U盘中的可执行文件打开时提示“Windows 无法访问指定设备、路径或文件。您可能没有合适的权限访问这个项目。”
  20. 满二叉树与完全二叉树的区别

热门文章

  1. node.js 函数外定义的变量 函数内赋值后为什么不能带出_(44)python少儿编程之函数(五)--- 作用域...
  2. ubuntu下minicom的安装及使用
  3. react native中一次错误排查 Error:Error: Duplicate resources
  4. PHP实现二叉树的深度优先遍历(前序、中序、后序)和广度优先遍历(层次) 转载陈小龙哈2017...
  5. 《逻辑与计算机设计基础(原书第5版)》——3.9 二进制加法器
  6. Java 流程控制与数组
  7. 如何在.NET上处理二维码
  8. RHEL5搭建apache服务器全过程(四)配置heartbeat和ipvsadm
  9. ruby html解析器
  10. IIS连接数、IIS并发连接数、IIS最大并发工作线程数、应用程序池的队列长度、应用程序池的......