动态库的链接

零: 前言

一直没搞懂这三个之间的区别.

动态库的链接.png

一: target depnedencies(编译前)

这个选项只是告诉工程在运行的时候先去编译这里导入的库.

二:Link Binary With Libraries(编译时期)

Link Binary With Libraries里添加的即你的某个project需要链接的库.

这里添加的库都会被编译到工程的最终包里.
只有在这里添加了.app才能找到该库的.o文件

三.Embedded Binaries(运行时)

这个是告诉工程在app运行时去哪些库里找实现方法.

这个选项只有在可运行的project里有.即你工程的总壳(有main.m文件的project)
不可运行(静.动态库 >> 没有main.m文件)的project是没有这个选项的.因为他们不可能进入运行时状态.

四.总结

1.当你导入一个库时.target dependencies和link binary with libraries两个选项都必须设置.
只有可运行的project里需要设置embedded binaries.

2.所以当你引入一个静态库的时候.只需要设置Link binary with libraries选项就可以了.因为他不需要编译.

3.当你embedded 一个库时xcode会自动帮你设置target dependencies 和 link binary with libraries

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容