您的位置:首页 > 其它

一个工程如何直接引用另一个工程? 如何打包静态库.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

未完待续...
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: