real framework中不可以使用类别 或 不可以不包含类文件

real framework 中直接调用NSClassFromString函数会返回null  需要强制加载指定类 或 直接通过类名引用

linux中静态库和动态库的区别

一、不同

库从本质上来说是一种可执行代码的二进制格式,可以被载入内存中执行。库分静态库和动态库两种。

1. 静态函数库

这类库的名字一般是libxxx.a;利用静态函数库编译成的文件比较大,因为整个 函数库的所有数据都会被整合进目标代码中,他的优点就显而易见了,即编译后的执行程序不需要外部的函数库支持,因为所有使用的函数都已经被编译进去了。当然这也会成为他的缺点,因为如果静态函数库改变了,那么你的程序必须重新编译。

2. 动态函数库

这类库的名字一般是libxxx.so;相对于静态函数库,动态函数库在编译的时候 并没有被编译进目标代码中,你的程序执行到相关函数时才调用该函数库里的相应函数,因此动态函数库所产生的可执行文件比较小。由于函数库没有被整合进你的程序,而是程序运行时动态的申请并调用,所以程序的运行环境中必须提供相应的库。动态函数库的改变并不影响你的程序,所以动态函数库的升级比较方便。

二、相同

都是由*.o目标文件生成

ios 开发中 动态库 与静态库的区别

使用静态库的好处

1,模块化,分工合作

2,避免少量改动经常导致大量的重复编译连接

3,也可以重用,注意不是共享使用

动态库使用有如下好处:

1使用动态库,可以将最终可执行文件体积缩小

2使用动态库,多个应用程序共享内存中得同一份库文件,节省资源

3使用动态库,可以不重新编译连接可执行程序的前提下,更新动态库文件达到更新应用程序的目的。

从1可以得出,将整个应用程序分模块,团队合作,进行分工,影响比较小。

等其他好处,

从2可以看出,其实动态库应该叫共享库,那么从这个意义上来说,苹果禁止iOS开发中使用动态库就可以理解了:

因为在现在的iPhone,iPodTouch,iPad上面程序都是单进程的,也就是某一时刻只有一个进程在运行,那么你写个共享库,

----共享给谁?(你使用的时候只有你一个应用程序存在,其他的应该被挂起了,即便是可以同时多个进程运行,别人能使用你的共享库里的东西吗?你这个是给你自己的程序定制的。)

----目前苹果的AppStore不支持模块更新,无法更新某个单独文件(除非自己写一个更新机制:有自己的服务端放置最新动态库文件)

至于苹果为啥禁止ios开发使用动态库我就猜到上面俩原因

转载于:https://blog.51cto.com/yjm199/1696664

关于静态库、动态库的区别汇总相关推荐

  1. C/C++ 跨平台交叉编译、静态库/动态库编译、MinGW、Cygwin、CodeBlocks使用原理及链接参数选项

    0. 引言 UNIX是一个注册商标,是要满足一大堆条件并且支付可观费用才能够被授权使用的一个操作系统.linux是unix的克隆版本,是由其创始人Linus和诸多世界知名的黑客手工打造的一个操作系统. ...

  2. Linux-(C/C++)生成并使用静态库/动态库

    静态库/动态库概要 在Windows下静态库的后缀为:.lib.动态库后缀为:.dll:而在Linux下静态库的后缀为:.a.动态库的后缀为:.so. 那么什么是静态库呢? 首先我们来看看程序编译的大 ...

  3. NDK01-打包静态库 动态库在mk和cmake环境配置使用

    动态库和静态库 动态库: libxxx.so 运行的时候,才会去加载,加载一次就在内存中存在副本,其他地方使用就都是公用的.使用场景就是 高德百度sdk对外开房 静态库: libxxx.a 编译期把静 ...

  4. Linux学习---静态库 动态库

    今天我们主要来说说Linux系统下基于动态库(.so)和静态(.a)的程序那些猫腻.在这之前,我们需要了解一下源代码到可执行程序之间到底发生了什么神奇而美妙的事情. 在Linux操作系统中,普遍使用E ...

  5. 软件库Library之静态库\动态库和静态加载\动态加载

    软件库Library之静态库\动态库和静态加载\动态加载 动态库之导入库 https://blog.csdn.net/wallaceli1981/article/details/5740718 * 动 ...

  6. 【Android NDK 开发】Visual Studio 2019 使用 CMake 开发 JNI 动态库 ( 动态库编译配置 | JNI 头文件导入 | JNI 方法命名规范 )

    文章目录 I . JNI 与 NDK 区别 II . Visual Studio 编译动态库 III. 配置 导入 jni.h 头文件 IV . IntelliJ IDEA Community Edi ...

  7. 【Android NDK 开发】Android.mk 配置动态库 ( Android Studio 配置动态库 | 动态库加载版本限制 | 本章仅做参考推荐使用 CMake 配置动态库 )

    文章目录 I . Android Studio 中使用 Android.mk 配置动态库 总结 II . 第三方动态库来源 III . 配置 Android.mk 构建脚本路径 IV . 预编译 第三 ...

  8. gcc -I -i -L -l 参数区别 / -l(静态库/动态库)

    介绍 gcc   - 参数 -I ( i 的大写)  :指定头文件路径(相对路径或觉得路径,建议相对路径) -i               :指定头文件名字 (一般不使用,而是直接放在**.c 文件 ...

  9. ar nm ldd 静态库 动态库

    一.ar的基本用法 ar命令可以用来创建.修改库,也可以从库中提出单个模块.库是一单独的文件,里面包含了按照特定的结构组织起来的其它的一些文件(称做此库文件的member).原始文件的内容.模式.时间 ...

  10. linux 静态库 动态库制作与使用

    Linux库概念及相关编程 1. 分文件编程案例 好处: 分模块的编程思想 网络 a 超声波b 电机c a.功能责任划分 b.方便调试 c.主程序简洁 2. 库 链接: link. 链接: link. ...

最新文章

  1. MapReduce源码之InputFormat
  2. 使用Advanced Installer进行二次打包
  3. JS中的this好神奇,都把我弄晕了
  4. 对cookie和子cookie操作的封装
  5. c++ new一个结构体_「C/C++」构造类型及应用:数组、结构体、共用体、枚举类型...
  6. Oracle 怎么删除重复数据
  7. android实例教程_Android内部存储示例教程
  8. Android的Context 安卓常用系统服务(当前运行包名/当前网络状态和开关网络/音频服务)...
  9. 【Docker】问题汇总
  10. 是谁让你的 Linux 平稳运行?感谢封包人吧
  11. python补考卷子_1819级计算机专业补考(python程序设计)_章节测验,期末考试,慕课答案查询公众号...
  12. vsftpd 虚拟用户
  13. 经典卷积神经网络-AlexNet
  14. python webkit内核_360浏览器使用meta标签强制使用指定webkit内核 - meta强制用极速模式...
  15. HTTP和HTTPS协议,看一篇就够了
  16. 怎么用python画出Excel表格数据的残差图
  17. vue教程——13 Vuex
  18. Android框架之路——OkGo的使用
  19. 贝叶斯神经网络BNN
  20. 关于“点击这里继续访问您选择的百度XXX”

热门文章

  1. php5.0相等,关于php:3个相等
  2. mysql查询 百万_MySQL百万级数据分页查询优化
  3. ruby mysql 占位符_ruby操作常用数据库
  4. java 中for循环中重复定义的变量 为什么不报错?
  5. oracle中的存储过程教程,oracle 存储过程
  6. C语言/C++编程学习:不找C/C++的工作也要学C/C++的原因
  7. VS2017安装配置Qt
  8. css不继承父类样式_提升你的Python编程能力,细说类的继承,拿走不谢
  9. mysql精讲_Mysql 索引精讲
  10. timm 视觉库中的 create_model 函数详解