[英]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.