为什么将某些静态库移至/ lib文件夹?

问题描述

我正在观看一些与CMake相关的教程视频,作者在其中一个link)中为用户/本地/ lib安装了一个静态库(.a)。我想知道将其放入其中可能有什么好处。据我所知,编译后,静态库被打包到最终的可执行二进制文件中。据我说,只有共享库才应移至/ lib文件夹。

或者也许是关于在静态库的情况下避免在构建过程中重新编译。任何帮助表示赞赏。

解决方法

通常,安装静态库的原因是能够使用它来在目标系统上编译多个可执行二进制文件(即使在不同的程序包中,因此不一定来自同一源代码树)。为此,还打包了一些静态库,实际上,有些软件包从相同的库(例如在我的Debian系统上,/usr/lib/x86_64-linux-gnu/{libpng16.a,libpng16.so}的{​​{1}}中都附带了.so和.a文件。软件包),因此它可用于静态和动态链接的可执行文件(这也可能是许可问题)。 如果您不想在项目中安装静态库,而只想在最终可执行文件的编译过程中使用它,则可以在CMakeLists.txt中进行配置。