iOS 库操作
库操作
主工程和子工程的引用关系
- 子工程引用主工程中的文件需要在子工程的
search path
中加入头文件的目录 - 子工程引用主工程的
.a
或framework
需要在子工程的search path
中同时加入库文件和头文件的引用 - 主工程引用子工程中的文件也需要在主工程中加入头文件的目录
库之间的引用关系
一个库文件A中引用了另一个库文件B,当一个工程引用了库文件A时,只需要引入A的库文件、B的库文件、A的头文件即可,不需要引入B的头文件。
这是因为,头文件只是用来在编译期间告诉编译器有某个方法,并不会编译到最终的文件中(库文件或可执行文件),所以在编译成功以后就不在需要头文件;因此这里就不在需要引入B的头文件
测试结果:
- 主工程A,子工程B(静态库),在主工程A中加入静态库C,设置子工程引用静态库C,这样编译的静态库B不包含静态库C,如果给第三方使用静态库B,那么需要给库文件B、库文件C、头文件B,上面的解释就是针对这种情况的库。
- 主工程A,子工程B(静态库),在子工程B中加入静态库C,这样编译的静态库B包含静态库C,如果给第三方使用静态库B,那么需要给库文件B、头文件B,不需要给出库C,因为库文件已经被打包到B中。
ar命令
ar命令可以修改、创建库。
ar -t *.a
// 显示备存文件中所包含的文件
ar -x *.a
// 自备存文件中取出成员文件
ar -rv mylib.a file1.o file2.o
// 将文件插入备存文件中
ar命令
引用:http://blog.csdn.net/yqmfly/article/details/45148081
nm命令
nm用来列出目标文件的符号清单。(目标文件可以是库,也可是是可执行文件)