为什么一些静态库被移动到 /lib 文件夹?

Why are some static libraries moved to /lib folder?

我正在观看一些连接到 CMake 的教程视频,其中一个 (link) 作者安装了一个静态库 (.a) 到 user/local/lib。我想知道把它放在那里有什么好处。据我所知,编译后,静态库被打包到最终的可执行二进制文件中。根据我的说法,只有共享库应该移动到 /lib 文件夹中。

或者,它可能是关于在静态库的情况下避免在构建过程中重新编译。感谢任何帮助。

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

中进行配置