Linux命令libboost所有的开发人员都安装并编译只包含头的库吗

Does Linux command libboost-all-dev install and compile the header-only libraries?

本文关键字:编译 安装 包含头 libboost 命令 开发 Linux      更新时间:2023-10-16

在Ubuntu上有一个安装boost库的命令,它是这样的:

sudo apt-get install libboost-all-dev

该命令是否还安装并编译仅头库?

如果没有,我还需要执行其他什么终端命令才能安装完整的boost库集?

我的最终目标是知道我需要安装(并且有可用的)哪些linux终端命令才能获得所有的boost库。

正如"仅表头"所暗示的那样,不需要编译仅表头的库。它们只是标题。

现在,libbost-all-dev包确实安装了那些需要编译的库(除了只有头的libs),但它不会当场编译它们。Ubuntu是一种所谓的二进制分发,意味着它以编译的形式分发包。Apt下载二进制文件并立即安装。这与Gentoo形成了鲜明对比,Gentoo是一个源发行版(并在您的机器上编译所有内容)。

简而言之,不需要进一步的命令。安装libbost-all-dev将在Ubuntu上安装所有可用的Boost库。

您提出的问题毫无意义。

Debian/Uubuntulibboost-all-dev有依赖项,这些依赖项确实包括少数二进制库包(例如Boost Thread、Boost DateTime的格式化部分等pp)。所有这些都将被安装。

是的,这个元包的目的是安装Boost开发环境的其余部分。

但它不会编译任何内容。所有Debian/Uubuntu软件包都是预先生成的,离线构建,并在您的端"刚刚安装"。

您可以通过浏览在线数据库来检查包的内容。

但如果你只对纯头库感兴趣,我建议你从官方网站下载最新版本的boost库;你还应该学习如何从源头构建boost,因为如果你依赖该库,这是一种在不久的将来很可能使用的技术。

浏览在线数据库的等效步骤是使用以下命令

apt-cache show <package>

所以,在你的情况下

apt-cache show libboost-all-dev

这将给你一个关于你将要安装什么的非常具体的想法。