打包静态库

, 

 

 

什么是库?

库是程序代码的集合,是共享程序代码的一种方式

根据源代码的公开情况,库可以分为2种类型

开源库

公开源代码 比如SDWebImage AFNworking

闭源库

不公开源代码,是经过编译后的二进制文件,看不到具体实现

主要分为:静态库、动态库

 

静态库和动态库的存在形式

静态库: .a  和 .framework

动态库 .dylib 和 .framework

静态库和动态库在使用上的区别

静态库: 链接时,静态库会被完整的复制到可执行文件中,被多次使用的静态库就会冗余拷贝 多次拷贝

动态库:链接时不复制,程序运行时由系统动态加载到内存,供程序调用,系统只加载一次,多个程序共用,节省内存

需要注意的是

项目中如果使用了自制的动态库,不能被上传到AppStore

静态库 的使用

1.可以抽取一些核心的功能代码供别人使用

2.如果要开发一个MRC项目

  如果要使用一个MRC框架

  1.将MRC转换为ARC的

将这个第三方框架 MRC框架 打包成一个静态库 直接用就可以了

打包静态库

 

 

 

 

 

如果包含第三方资源

比如图片 等

新建一个 xxx.bundle文件夹

将图片资源放入这个文件夹,将这个文件夹导入进来

 

 

转载于:https://www.cnblogs.com/seeworld/p/6715084.html

打包静态库时,如果该库依赖于其他的静态库,那么在打包过程中必须考虑到所有依赖库也被一并包含进来。这通常涉及到以下步骤: 1. **识别依赖库**: 首先,确定你的静态库(假设名为`libA.a`)需要哪些其他静态库。这可能包括操作系统提供的库、第三方库或是你自己项目的其他库。 2. **添加依赖库**: 将这些依赖库(如`libB.a`, `libC.a`等)添加到你的构建流程中。在构建`libA.a`时,你应该能够链接到这些依赖库。这意味着在构建命令中增加相应的库文件路径和名称,如: ``` ar rcs libA.a source_files_in_libA.o gcc -shared -o libA.so -Wl,-Bstatic -lB -Wl,-Bdynamic -lC -o libA.so ``` 或者如果你使用的是静态库,你可能会直接链接它们而不需要生成共享库(`.so`文件): ``` ar rcs libA.a source_files_in_libA.o -lB -lC ``` 这里,`source_files_in_libA.o`表示`libA.a`内部的实际目标文件。 3. **考虑编译选项**: 根据每个库的文档,选择正确的编译选项,以确保依赖库能够在你的平台上正确构建。有时候,某些库需要特定的编译标志来启用或禁用某些特性。 4. **管理库路径**: 如果依赖库不在当前目录下,你需要在编译时指定其完整路径,比如在上述示例中的`-lB`和`-lC`就是指明要链接的库名。 5. **复制文件**: 最终,当`libA.a`被打包时,你需要将所有依赖库也一起复制进最终的发布包内,这样在用户安装或部署此静态库时,所有的依赖都能自动获取和使用。 6. **版本兼容性**: 确保你使用的库版本与你的应用需求相符,并且考虑版本更新带来的潜在变化,如API改变或依赖项的变化。 通过以上步骤,你可以确保在打包静态库时不仅包含了核心功能,还包含了必要的依赖库,使得用户在部署时不必额外寻找或安装依赖库。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值