在Linux中.so和.a檔有什麼差別?

更新 Apr 3, 2023

產品資訊

其他

Linux OS
NI driver

問題敘述

我在基於Linux的作業系統(例如,NI Linux)的電腦上使用NI相關的驅動程式。這些驅動程式在該電腦上安裝了一些.so或.a檔案。這些檔案是什麼?它們有什麼不同?

解決方案

副檔名為“ .a”的檔案是static libraries。這些libraries包含了在編譯時連接到底層程式中的相關函數,並成為應用程式的一部分。舉例來說,NI-488.2驅動程式就是使用static libraries。

副檔名為“ .so”的檔案是dynamically linked shared object libraries,簡稱為shared objects、shared libraries或shared object libraries。Shared object libraries在執行時動態載入。Shared object libraries並不是應用程式的一部分,但它們在編譯過程中必須可用取用。一般來說,shared object libraries類似於Windows電腦上的DLL檔。 舉例來說,NI-VISA驅動程式就是使用Shared object libraries。