2012-06-26 56 views
0

我不知道导入的差异,并包含在Object-cimport =动态链接? &include =静态链接?

顺便说一句,我不清楚动态链接和静态链接的区别。

如果我使用静态链接的库, 是否意味着我复制了我的程序库所需的代码并与它们链接? 然后我的程序可以使用库中的代码。

如果我用动态链接库, 是不是意味着我只能引用我的程序运行时,我从图书馆到我的程序需要的代码。 然后我的程序可以使用“参考代码”。

回答

2

#import#include和静态与动态链接是两个完全不相关的主题。

#include将文件的内容直接包含在另一个文件中,并且在C中(因此也在Objective-C中)中可用。然而,仅当那个文件尚未被包括在内时,才想要包括文件的内容是很常见的。 (例如,您不需要声明两次相同的变量;这会导致编译器错误!)这就是为什么在Objective-C中添加了#import;它确实如此:仅当该文件尚未被#import编辑时才包括文件的内容。如果您不确定要使用什么,则应该使用#import

静态与动态链接是完全不同的 - 联后编译发生,所以它不可能涉及到#import#include,这是源代码的一部分。然而,您对链接的想法是完全正确的 - 静态链接库包含在您的应用程序中,而您的用户不需要它们。动态链接的库被引用,并且必须存在于用户的计算机上才能运行。

+0

非常清楚和简单的答案:) thx很多 – code4j