Sur*_*nya 1 macos static-libraries ios
我是一个新的iOS开发人员.我有一个非常基本的怀疑.我在许多地方读过,我们需要发送我们的.h文件以及静态库的.a文件.
而.a文件是编译库,具有完整的实现,开发人员无法自己阅读,只是为了安全保护实现者代码.
我们需要.h文件来了解可用的公共功能.但是为什么Xcode不能解码.a文件并直接使用它而不是发送另一个.h文件.Xcode不需要向开发人员展示.a实现,而是可以向开发人员提供公开可用的方法.
我没有看到苹果没有这样做的任何合理原因.我相信运送.h文件肯定有充分理由.我想知道可能是什么原因?
一个.a文件是简单的一个或多个存档.o(对象)的文件.目标文件包含已编译的机器代码(针对特定CPU体系结构下的一个特定操作系统).原始源代码"丢失".
你可能不知道的事实:目标文件可以包含从任意编程语言编译的二进制文件.一个.h文件是C/C++ /目标C特异性的.它包含您需要能够在C/C++/Objective C中的目标文件中使用二进制形式的函数/数据类型/ ...所需的数据类型和函数原型.您可以编写一个Pascal库,编译它到.a文件并使用适当的header(.h)文件在Objective C程序中使用该代码.
您也可以只有一个头文件(.h文件),但是例如6个不同的.a文件:一个编译为Mac OS X 64bit,一个为Mac OS X 32bit,一个为Linux 2.6 64bit,一个为Linux 2.6 32bit,一个为FreeBSD,最后为OpenBSD.
最后但并非最不重要的是,并不是苹果公司决定采用这种方式,.a并且.o文件可以在(至少)任何类Unix操作系统上找到,并且头文件是C的标准,从最初的几天开始.
通常,如果将库从Mac移植到Linux,则可以使用(大部分)代码和头文件,但必须编译.a包含为Linux编译的目标文件的单独文件.
| 归档时间: |
|
| 查看次数: |
808 次 |
| 最近记录: |