如何在Ubuntu上安装Boost

k53*_*3sc 441 ubuntu boost

我在Ubuntu上,我想安装Boost.我试过了

sudo apt-get install boost
Run Code Online (Sandbox Code Playgroud)

但是没有这样的包裹.在Ubuntu上安装Boost的最佳方法是什么?

Ant*_*nov 776

你可以使用apt-get命令(要求sudo)

sudo apt-get install libboost-all-dev
Run Code Online (Sandbox Code Playgroud)

或者你可以打电话

aptitude search boost
Run Code Online (Sandbox Code Playgroud)

找到您需要的包并使用该apt-get命令安装它们.

  • 使用apt-get的一个缺点是它通常是最新的boost版本背后的几个版本. (66认同)
  • 从源代码构建和安装Boost很容易,例如http://anycoder.wordpress.com/2014/04/28/building-boost/ (6认同)
  • 不要使用boost的打包版本,现在在Ubuntu 16.04上是1.58,最新的稳定版本是1.67.0!请参阅下面的回复和我的评论:/sf/answers/2889095751/ (3认同)
  • 您是否有过使用Boost的经验? (2认同)
  • 我有 boost 的编程经验,但没有安装经验。我自己从未尝试过,所以我不能说它是否易于使用(但在我看来,包管理器是最简单的方法)。我应该将此建议作为评论发布,但我无法评论问题。 (2认同)

小智 161

获取您需要的Boost版本.这是1.55,但随意更改或手动下载自己:

wget -O boost_1_55_0.tar.gz https://sourceforge.net/projects/boost/files/boost/1.55.0/boost_1_55_0.tar.gz/download
tar xzvf boost_1_55_0.tar.gz
cd boost_1_55_0/
Run Code Online (Sandbox Code Playgroud)

获取所需的库,主要icu用于boost::regex支持:

sudo apt-get update
sudo apt-get install build-essential g++ python-dev autotools-dev libicu-dev build-essential libbz2-dev libboost-all-dev
Run Code Online (Sandbox Code Playgroud)

Boost的引导程序设置:

./bootstrap.sh --prefix=/usr/
Run Code Online (Sandbox Code Playgroud)

然后构建它:

./b2
Run Code Online (Sandbox Code Playgroud)

并最终安装它:

sudo ./b2 install
Run Code Online (Sandbox Code Playgroud)

  • 什么是libboost-all-dev?为什么我应该在安装boost之前安装boost? (39认同)
  • 也应该执行`./b2 install`作为最后一步 (22认同)
  • @ tbc0 Boost现在是版本1.59,最新的PPA是1.55,因此从源代码构建相关 (21认同)
  • @TemplateRex我撤回了我的评论.我解除了我的downvote. (5认同)
  • `sudo ./b2 install` 也会构建它。您不必事先调用`./b2`。 (4认同)
  • 如果我们使用./bootstrap.sh --prefix =/usr/include会有什么区别?我在/ usr/include中有boost库.我想知道通过这样做,我可以更换旧的安装吗? (2认同)
  • 被否决是因为典型的 Ubuntu 用户应该使用 apt 或 aptitude 而不是手动安装。让包管理器跟踪事情。 (2认同)
  • 请更改为HTTPS的链接;HTTP对二进制下载不安全:) (2认同)
  • 这很好,但它搞砸了cmake (2认同)

Eri*_*ski 76

使用boost::array以下示例在Ubuntu上安装Boost :

安装libboost-all-dev和aptitude:

sudo apt install libboost-all-dev

sudo apt install aptitude

aptitude search boost
Run Code Online (Sandbox Code Playgroud)

然后将其粘贴到名为的C++文件中main.cpp:

#include <iostream>
#include <boost/array.hpp>

using namespace std;
int main(){
  boost::array<int, 4> arr = {{1,2,3,4}};
  cout << "hi" << arr[0];
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

编译如下:

g++ -o s main.cpp
Run Code Online (Sandbox Code Playgroud)

像这样运行:

./s
Run Code Online (Sandbox Code Playgroud)

程序打印:

hi1
Run Code Online (Sandbox Code Playgroud)

  • 为什么我要运行`aptitude search boost`? (27认同)
  • 行"boost :: array <int,4> arr = {{1,2,3,4}};"中有一个错误,它应该是"boost :: array <int,4> arr = {1 -1,2,3,4-};" (3认同)

小智 17

获取您需要的Boost版本.这是1.55,但随意更改或手动下载自己:

wget -O boost_1_55_0.tar.gz http://sourceforge.net/projects/boost/files/boost/1.55.0/boost_1_55_0.tar.gz/download
tar xzvf boost_1_55_0.tar.gz
cd boost_1_55_0/

获取所需的库,主要的是icu for boost :: regex支持:

sudo apt-get update
sudo apt-get install build-essential g++ python-dev autotools-dev libicu-dev libbz2-dev 

Boost的引导程序设置:

./bootstrap.sh --prefix=/usr/local

如果我们想要MPI,那么我们需要在user-config.jam文件中设置标志:

user_configFile=`find $PWD -name user-config.jam`
echo "using mpi ;" >> $user_configFile

查找最大物理核心数:

n=`cat /proc/cpuinfo | grep "cpu cores" | uniq | awk '{print $NF}'`

并行安装boost:

sudo ./b2 --with=all -j $n install 

假设您已经安装了/ usr/local/lib.如果没有,您可以将它添加到LD LIBRARY路径:

sudo sh -c 'echo "/usr/local/lib" >> /etc/ld.so.conf.d/local.conf'

重置ldconfig:

sudo ldconfig


x4g*_*u1x 16

通过子系统更新Windows 10 Ubuntu应用程序(也适用于标准Ubuntu):

您可能在查找包时遇到问题.如果你这样做,永远不要害怕!PPA在这里!

sudo add-apt-repository ppa:boost-latest/ppa
sudo apt-get update
Run Code Online (Sandbox Code Playgroud)

然后运行:

sudo apt-get install libboost-all-dev
Run Code Online (Sandbox Code Playgroud)

  • 我知道,为那些寻找全面解决方案的人(像我一样)发帖.类似于АлексейШтыков的答案 (7认同)
  • @AdrianW这个答案与Windows 10无关。这与[Ubuntu恰好在Windows 10内核上运行](https://docs.microsoft.com/zh-cn/windows/wsl/install-win10)有关,因此对于以某种方式运行Ubuntu的用户来说,这是一个有效的解决方案。由于该问题并不仅限于在Linux内核上运行的Ubuntu,因此此解决方案很好。 (6认同)
  • 存储库“http://ppa.launchpad.net/boost-latest/ppa/ubuntu xenial Release”没有发布文件。 (2认同)

Aas*_*ari 12

您可以使用以下命令在 ubuntu 上安装 boost:

sudo apt update

sudo apt install libboost-all-dev


Ara*_*ghi 10

首先尝试以下操作:

$ sudo apt-get install libboost*
Run Code Online (Sandbox Code Playgroud)

您可能会收到类似于以下内容的错误消息,就像我一样:

E: Unable to correct problems, you have held broken packages.
Run Code Online (Sandbox Code Playgroud)

然后尝试安装以下软件包:

$ sudo apt-get install libboost-all-dev
Run Code Online (Sandbox Code Playgroud)

现在您可以使用 Boost 创建一个示例项目:

$ mkdir boost
$ cd boost/
$ cat > main.cpp &
Run Code Online (Sandbox Code Playgroud)