靚麗時尚館

位置:首頁 > 健康生活 > 心理

dll和so文件區別

心理7.73K
dll和so文件區別

Dll與或b(MacOS)文件所使用的機制幾乎相同,因此很難確切解釋它們之間的區別。

核心區別在於每種文件類型默認情況下可見的內容。文件導出語言(gcc)級鏈接-這意味着(默認情況下)拉入時(默認情況下)所有“外部”的C&c++符號都可用於鏈接。這也意味着,解析文件本質上是一個鏈接步驟,加載程序不關心符號來自哪個文件。它僅遵循.a文件遵循的常規鏈接步驟規則,以某種順序搜索指定的文件。

另一方面,Dll文件是一種操作系統功能,與語言的鏈接步驟完全分開。MSVC使用文件來鏈接靜態庫和動態庫(每個dll文件都會生成一個用於鏈接的成對的文件),因此,一旦生成該程序,就將其完全“鏈接”(從語言中心角度)。。

但是,在鏈接階段,會在代表Dll的庫中解析符號,從而允許鏈接程序在PE文件中構建導入表,其中包含dll的顯式列表以及每個dll中引用的入口點。在加載時,Windows不必執行“鏈接”來解析共享庫中的符號:該步驟已經完成-Windows加載器僅加載dll並直接連接函數

標籤:dll 文件