Irbis Asked: 2022-06-08 03:23:17 +0800 CST2022-06-08 03:23:17 +0800 CST 2022-06-08 03:23:17 +0800 CST apt 包 - 静态库与动态库 772 我使用 Ubuntu 18.04。我使用 apt 安装库,例如: sudo apt install freeglut3-dev apt 是否总是安装动态库,或者我可以确定一个包是包含静态库还是动态库? apt shared-library 1 个回答 Voted Best Answer Stewart 2022-06-08T04:11:11+08:002022-06-08T04:11:11+08:00 按照惯例: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) 的符号链接。
按照惯例:
libfoo1
将包含一个动态库,同时libfoo-dev
将创建标题和静态库。libfoo1
只是运行时依赖,动态库是运行时依赖。libfoo-dev
是构建依赖项,静态库仅在构建/链接期间使用。如果您想知道库中的内容,可以使用
dpkg
查看已安装包中的内容:如果没有安装包,可以使用
apt-file
命令,但是需要最近使用apt update
过的文件列表来获取。libfoo.so
(inlibfoo-dev
) 实际上只是到libfoo.so.1
(inlibfoo1
) 的符号链接,它本身就是到libfoo.so.1.0.0
(also inlibfoo1
) 的符号链接。