静态库和动态库

来源:互联网 发布:淘宝上好的外贸店 编辑:程序博客网 时间:2024/06/05 17:37
静态库
.a   ->静态库    -》编译时连接的库,编译代码的时候就会把库的二进制导入编译到程序中
.dylib —》动态库 -》运行程序的时候,当调用相关函数 才会连接动态库,

.framework-》既可以是静态库也可以是动态的


1.库的功能—》1.不暴漏源码(对一大堆源码封装成二进制)2.使用简单,只需要导入库和头文件就可以使用
2.怎么制作
3.怎么使用


将一些不想暴露给使用方的实现代码打包成.a库(比如:百度地图sdk,写sdk的时候,需要使用到)

//需要创建一个静态库的工程,来实现代码逻辑,并完成对代码的打包(.a库)
//创建一个测试工程(使用.a库)(将.a库和必要的头文件导入到测试工程)

//静态库的打包(1、基于模拟器生成的.a库,此.a库是基于电脑的cpu(i386)逻辑生成,无法在真机上使用
2、基于真机生成的.a库(armv6,armv7智能手机cpu逻辑)无法在模拟器环境下使用)

//把两个静态库合成一个
//必须写出两个静态库的绝对路径
lipo -create  /ospath/libname.a /simulatorpath/libname.a -output /allInOnelibName.a

在终端 输入
合并.a
lipo -create /Users/lzxuan/Desktop/libMyControl.a /Users/lzxuan/Desktop/MyControl/libMyControl.a -output /Users/lzxuan/libMyControl.a

//-output 后面加的 目标文件的路径


=================
合并 xxx.framework

//1.首先把生成 MyFramework.framework拷贝到桌面
//2.输入下面的指令
-create 后面的路径应该是真机中MyFramework.framework/MyFramework的路径 和模拟器MyFramework.framework/MyFramework 路径
-output 后面 就是目标 刚才桌面上 MyFramework.framework/MyFramework


lipo -create /Users/lzxuan/Desktop/Debug-iphoneos/MyFramework.framework/MyFramework /Users/lzxuan/Desktop/Debug-iphonesimulator/MyFramework.framework/MyFramework -output ~/Desktop/MyFramework.framework/MyFramework
0 0
原创粉丝点击