一个工程如何直接引用另一个工程? 如何打包静态库.a? 如何打包静态库.frameWork? .a和.framework的区别?
2016-05-04 18:04
453 查看
最近,关于库文件考虑到以上几个问题。害怕以后忘记遂Mark一下。临时记录,尚未整理。
首先,声明一下所涉及到的两个重要到概念:1: target dependencies(目标依赖);2:link binary with libraries
1、target dependencies(目标依赖):对工程文件编译之前先对依赖目标进行编译。也就是说target dependencies仅仅是对目标进行编译,并没有把目标(指其他工程)和工程文件连接起来。
2、link binary with libraries:把当前工程和库文件关联起来生成二进制文件。也就是说这一步是关联当前工程文件和库文件。
一、一个工程如何直接引用另一个工程?
期待结果如图:
Demo-test工程中引用test工程。
我的做法:1、把test工程拖入到当前工程中
2、在build phrases中添加依赖目标test工程
3、把test工程里面的TestViewController.h放到当前工程中
4、编译---报错
其实原因就是上面提到的2个概念。用的目标依赖没有把工程文件和目标文件关联起来,故找不到TestViewController.m文件二报错。
因此我得出的观点:在一个工程中直接引用另一个工程是无法实现的。但是可能有直接引用的方法,故可以的话还请告知谢谢。
二、如何打包静态库.a
这是一个简单的打包静态库工程文件,没有涉及到资源文件打包等其他复杂功能。
1、创建静态库工程
2、拷贝test工程中的test目录到静态库工程文件中
3、把刚拷贝到静态库工程中的test目录添加到静态库工程中 结果如下图:
4、编译就可以生成所需要的.a库文件
静态库文件的使用:1:直接把.a文件加入到所需要的工程中,引入静态库需要暴露.h文件,最重要的是link binary with libraries 关联下.a文件后就可以使用了。2:此时可以在当前工程中直接引用库工程。步骤类似一个工程中引用另一个工程,重要的区别是不需要添加目标依赖,只需要关联下库文件就OK了。关联之后结果如下:
左侧123为静态库工程。
三、如何打包.framework
未完待续...
首先,声明一下所涉及到的两个重要到概念:1: target dependencies(目标依赖);2:link binary with libraries
1、target dependencies(目标依赖):对工程文件编译之前先对依赖目标进行编译。也就是说target dependencies仅仅是对目标进行编译,并没有把目标(指其他工程)和工程文件连接起来。
2、link binary with libraries:把当前工程和库文件关联起来生成二进制文件。也就是说这一步是关联当前工程文件和库文件。
一、一个工程如何直接引用另一个工程?
期待结果如图:
Demo-test工程中引用test工程。
我的做法:1、把test工程拖入到当前工程中
2、在build phrases中添加依赖目标test工程
3、把test工程里面的TestViewController.h放到当前工程中
4、编译---报错
其实原因就是上面提到的2个概念。用的目标依赖没有把工程文件和目标文件关联起来,故找不到TestViewController.m文件二报错。
因此我得出的观点:在一个工程中直接引用另一个工程是无法实现的。但是可能有直接引用的方法,故可以的话还请告知谢谢。
二、如何打包静态库.a
这是一个简单的打包静态库工程文件,没有涉及到资源文件打包等其他复杂功能。
1、创建静态库工程
2、拷贝test工程中的test目录到静态库工程文件中
3、把刚拷贝到静态库工程中的test目录添加到静态库工程中 结果如下图:
4、编译就可以生成所需要的.a库文件
静态库文件的使用:1:直接把.a文件加入到所需要的工程中,引入静态库需要暴露.h文件,最重要的是link binary with libraries 关联下.a文件后就可以使用了。2:此时可以在当前工程中直接引用库工程。步骤类似一个工程中引用另一个工程,重要的区别是不需要添加目标依赖,只需要关联下库文件就OK了。关联之后结果如下:
左侧123为静态库工程。
三、如何打包.framework
未完待续...
相关文章推荐
- Spring 基础特性
- 图片的友好显示方式
- jquery如何判断某元素是否具备指定的样式
- 基于MT7688 原厂SDK 使用SPI控制器驱动TFT屏幕ILI9225驱动器(spi接口)
- swift语言UILabel的使用
- 如何使用linq读取DataTable集合?AsQueryable() 和 AsEnumerable()区别?
- SQLite的优化总结
- JDBC学习笔记(4)——PreparedStatement的使用
- POJ2186 Popular Cows (强连通缩点)
- IE7下的浮动弹出框背景透明,背景为黑色改为透明
- json、javaBean、xml互转的几种工具介绍
- Highcharts error #14: www.highcharts.com/errors/14
- Python格式化输出%s和%d
- Highcharts error #14: www.highcharts.com/errors/14
- Highcharts error #14: www.highcharts.com/errors/14
- Android 使用ORMLite操作数据库
- 计算机基本运算(乘除法)
- IOS8+Appstore应用上线流程
- apache commons io Clirr结果(2016-04-21更新)
- intellj idea 如何设置类头注释和方法注释