Apt

apt 包 - 靜態庫與動態庫

  • June 7, 2022

我使用 Ubuntu 18.04。我使用 apt 安裝庫,例如:

sudo apt install freeglut3-dev

apt 是否總是安裝動態庫,或者我可以確定一個包是包含靜態庫還是動態庫?

按照慣例libfoo1將包含一個動態庫,同時libfoo-dev將創建標題和靜態庫。

libfoo1只是執行時依賴,動態庫是執行時依賴。

libfoo-dev是建構依賴項,靜態庫僅在建構/連結期間使用。

如果您想知道庫中的內容,可以使用dpkg查看已安裝包中的內容:

$ dpkg -L libfoo1
/usr/lib/x86_64-linux-gnu/libfoo.so.1.0.0
/usr/share/doc/libfoo1/changelog.gz
/usr/share/doc/libfoo1/copywrite
/usr/lib/x86_64-linux-gnu/libfoo.so.1

如果沒有安裝包,可以使用apt-file命令,但是需要最近使用apt update過的文件列表來獲取。

$ apt-file list libfoo-dev
libfoo-dev: /usr/include/foo.h
libfoo-dev: /usr/lib/x86_64-linux-gnu/libfoo.a
libfoo-dev: /usr/lib/x86_64-linux-gnu/libfoo.so

libfoo.so(in libfoo-dev) 實際上只是到libfoo.so.1(in libfoo1) 的符號連結,它本身就是到libfoo.so.1.0.0(also in libfoo1) 的符號連結。

引用自:https://unix.stackexchange.com/questions/705275