静态库和动态库

1.库:
    库是程序代码的集合,是共享代码的一种方式。根据源代码的公开情况,可以分为开源库和闭源库。
闭源库主要分为静态库和动态库。

2.静态库和动态库
静态库:.a和.framework形式
动态库:.dylib和.framework形式
区别:链接时,静态库会被完整的复制到可执行文件中,如果被多次使用,则就拷贝多次;动态库在链接
时不复制,程序运行时由系统动态加载到内存供程序调用,系统只加载一次,多个程序共用,节省内存。
注意:如果项目中使用了自己定义的动态库,则无法发布到APPStore

3.静态库的制作
1> 首先创建库项目
2> 创建自己的工具文件
3> target->Build Phases->Copy Files中添加头文件
4> 分别选择真机和模拟器进行编译

4.查看静态库所支持的平台
1> 终端指令:
    lipo -info xxx.a
2> 合成静态库
把开发环境和生产环境的静态库和成一个的终端指令为:
    lipo -create Debug-iphoneos/libMathlib.a Debug-iphonesimulator/libMathlib.a -output mathlib/MathTool.a
3> 注意
    我们会发现上面的静态库都是debug版本的,我们也可以设置release版本的:
点击工程->Edit schema->Run->Info->修改Build Configurationrelease
    一般在开发中不用合成的静态库,因为合成后的静态库太大了。

5.在工程中边开发静态库边调试
1> 创建一个正常的工程
2> 配置targets->build Phases->target Dependencies->Link Binary WithLibraries


你可能感兴趣的:(静态库和动态库)