我使用Ubuntu 18.04。我使用 apt 安装库,例如:
sudo apt install freeglut3-dev
apt 是否总是安装动态库,或者我可以确定包是否包含静态库或动态库?
答案1
按照惯例: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
) 实际上只是 (in ) 的符号链接,而libfoo.so.1
(in ) 本身也是 (也在)libfoo1
的符号链接。libfoo.so.1.0.0
libfoo1