[英]import = dynamic linking? & include = static linking?
我想知道导入和包含在Object-c中的区别
顺便说一句,我不清楚动态和静态链接的区别。
如果我使用带有静态链接的库,这是否意味着我需要从库中为我的程序复制我需要的代码并与它们链接? 然后我的程序可以使用库中的代码。
如果我使用带动态链接的库,那就意味着我只在程序运行时将我需要的代码从库引用到我的程序中。 然后我的程序可以使用“参考代码”。
#import
vs. #include
和静态与动态链接是两个完全不相关的主题。
#include
直接在另一个文件中包含文件的内容,并且在C中可用(因此也在Objective-C中)。 但是, 只有在 尚未包含该文件的情况下才希望包含文件的内容。 (例如,您不希望两次声明相同的变量;它会导致编译器错误!)这就是为什么在Objective-C中添加#import
的原因; 它完全是这样的: 只有当文件尚未被#import
编辑时才包含文件的内容。 如果你不确定要使用什么,你可能应该使用#import
。
静态与动态链接完全不同 - 链接在编译之后发生,因此它不可能与#import
和#include
相关,它们是源代码的一部分。 您对链接的想法完全正确,但是 - 您的应用中包含静态链接的库,您的用户不需要它们。 引用了动态链接库,并且必须存在于用户的计算机上才能运行应用程序。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.