Ubuntu에 Boost를 설치하는 방법


489

우분투에 있고 Boost를 설치하고 싶습니다. 나는 함께 노력했다

sudo apt-get install boost

그러나 그러한 패키지는 없었습니다. Ubuntu에 Boost를 설치하는 가장 좋은 방법은 무엇입니까?

답변:


849

당신은 apt-get명령 을 사용할 수 있습니다 (필수 sudo)

sudo apt-get install libboost-all-dev

아니면 전화 할 수 있습니다

aptitude search boost

필요한 패키지를 찾아서 apt-get명령을 사용하여 설치하십시오 .


3
부스트 경험이 있습니까?
k53sc

1
부스트 프로그래밍 경험이 있었지만 설치 경험은 없었습니다. 나는 이것을 직접 시도한 적이 없으므로 사용하기 쉬운 지 말할 수 없다 (그러나 패키지 관리자가 가장 쉬운 방법이라고 생각된다). 이 제안을 의견으로 게시해야하지만 질문에 대해서는 언급 할 수 없습니다.
Anton Guryanov

71
apt-get을 사용할 때의 한 가지 단점은 일반적으로 최신 부스트 릴리스 뒤에 몇 가지 버전이라는 것입니다.
Ralf


5
Ubuntu 16.04에서 현재 패키지 버전의 boost를 사용하지 마십시오. 1.58이고 최신 안정 버전은 1.67.0입니다! 아래의 답변과 내 의견을 참조하십시오 : stackoverflow.com/a/41272796/2617716
Jeb

182

필요한 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/

필요한 라이브러리를 가져 오기, 주요 것들이 있습니다 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

부스트의 부트 스트랩 설정 :

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

그런 다음 다음을 사용하여 빌드하십시오.

./b2

결국 설치하십시오.

sudo ./b2 install

2
./bootstrap.sh --prefix = / usr / include를 사용하면 차이점은 무엇입니까? / usr / include에 부스트 라이브러리가 있습니다. 이렇게하면 이전 설치를 바꿀 수 있습니까?
Sai

40
libboost-all-dev는 무엇입니까? 부스트를 설치하기 전에 왜 부스트를 설치해야합니까?
javapowered

23
또한 ./b2 install마지막 단계로 실행되어야합니다
javapowered

21
@ tbc0 Boost의 버전은 1.59이며 최신 PPA의 버전은 1.55이므로 소스에서 빌드하는 것이 적합합니다.
TemplateRex

5
@TemplateRex 댓글을 취소합니다. 나는 downvote를 undid했다.
tbc0

83

사용의 예와 우분투에 부스트를 설치 boost::array:

libboost-all-dev와 aptitude를 설치하십시오 :

sudo apt install libboost-all-dev

sudo apt install aptitude

aptitude search boost

그런 다음 이것을 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;
}

다음과 같이 컴파일하십시오.

g++ -o s main.cpp

다음과 같이 실행하십시오.

./s

프로그램 인쇄 :

hi1

3
"boost :: array <int, 4> arr = {{1,2,3,4}};"행에 오류가 있습니다. "boost :: array <int, 4> arr = {1 , 2,3,4}; "
szulak

36
왜 내가 달리고 싶어 aptitude search boost?
Leedehai

23

필요한 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
타르 xzvf boost_1_55_0.tar.gz
cd boost_1_55_0 /

필요한 라이브러리를 얻으십시오. 주요 라이브러리는 boost :: regex 지원을위한 icu입니다.

sudo apt-get 업데이트
sudo apt-get install 빌드 필수 g ++ python-dev autotools-dev libicu-dev libbz2-dev 

부스트의 부트 스트랩 설정 :

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

MPI를 원하면 user-config.jam 파일에서 플래그를 설정해야합니다.

user_configFile =`$ PWD 찾기-사용자 이름 user.config.jam`
에코 "mpi 사용;" >> $ user_config 파일

최대 물리적 코어 수를 찾으십시오.

n =`cat / proc / cpuinfo | grep "cpu 코어"| 유니크 | awk '{print $ NF}'`

부스트를 병렬로 설치하십시오.

sudo ./b2 --with = all -j $ n 설치 

/ usr / local / lib 설정이 이미 있다고 가정합니다 . 그렇지 않은 경우 LD 라이브러리 경로에 추가 할 수 있습니다 .

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

ldconfig를 재설정하십시오.

sudo ldconfig

1
PO Edit 2.0과 같은 일부 기능은 boost 1.6을 필요로하지만 현재 apt-get을 통해 사용할 수는 없습니다 . boost.org/users/history/version_1_60_0.html 에서 가져 와서 확장 할 수 있습니다. LD 라이브러리 경로가 $ PATH와 동일하지 않다는 것을 기억하면서 위의 훌륭한 지침을 따르십시오.
Andrew Killen

링크를 HTTPS로 변경하십시오. HTTP는 바이너리 다운로드에 안전하지 않습니다 :)
Clément

1
최근 설치에서 코멘트, 최신 버전 얻기 : -로 이동을 boost.org 마지막 하나를 얻을하고 "현재 릴리스"다운로드 (현재 1.67.0 : dl.bintray.com/boostorg/release/1.67.0/source / ... ) 감사합니다!
Jeb

하하 이것은 내 시스템을 좋게 만듭니다. 마지막 2 개 항목 인 것 같습니다.
thang

sourceforge에 대한 이전 링크가 작동하지 않습니다. 사용 dl.bintray.com/boostorg/release/1.72.0/source/... (필요한 버전)
빅터 Gavro

18

하위 시스템을 통한 Windows 10 Ubuntu 응용 프로그램 업데이트 (표준 Ubuntu에서도 작동) :

패키지를 찾는 데 문제가있을 수 있습니다. 그렇게한다면 절대 두려워하지 마십시오! PPA가 여기 있습니다!

sudo add-apt-repository ppa:boost-latest/ppa
sudo apt-get update

그런 다음 다음을 실행하십시오.

sudo apt-get install libboost-all-dev

1
OP는 Win10을 요청하지 않았습니다.
Adrian W

9
둥근 솔루션을 찾고있는 사람들을 위해 게시하고 있습니다. Алексей Штыков의 답변
x4g0tt3nSou1x

7
@AdrianW이 답변은 Windows 10에 관한 것이 아닙니다. Windows 10 커널 에서 실행되는 우분투에 관한 것이므로 어떤 방식으로 우분투를 실행하는 사람들에게 유효한 솔루션입니다. 이 질문이 Linux 커널에서 실행되는 Ubuntu로 제한되지 않았 으므로이 솔루션은 좋습니다.
차이 티 렉스

1
' ppa.launchpad.net/boost-latest/ppa/ubuntu xenial Release' 리포지토리 에 릴리스 파일이 없습니다.
user239558

1

실제로 프로젝트에서 Boost를 사용하기 전에 "설치"또는 "컴파일"이 필요하지 않습니다. Boost 라이브러리를 컴퓨터의 어느 위치 에나 다운로드하여 압축을 풀 수 있습니다 /usr/local/.

코드를 컴파일 할 때로 컴파일러가 라이브러리를 찾을 위치를 표시하면됩니다 -I. 예를 들면 다음과 같습니다 g++ -I /usr/local/boost_1_59_0 xxx.hpp.


10
이것은 부스트 ​​헤더 라이브러리에서만 작동합니다. 나머지는 위의 답변에서 설명한 것처럼 패키지 관리자를 사용하여 빌드하거나 설치해야합니다. 별도의 빌드 및 설치가 필요한 부스트 라이브러리는 원자, 크로노, 컨테이너, 컨텍스트, 코 루틴, 코 루틴 2, 날짜 _ 시간, 예외, 파일 시스템, 그래프, graph_parallel, iostream, 로케일, 로그, 수학, mpi, program_options, python, random , 정규식, 직렬화, 신호, 시스템, 테스트, 스레드, 타이머, type_erasure, 웨이브.
Elias Kouskoumvekakis

심지어 단지는 (당신이 좋은 이유가없는 한) 패키지 관리자는 우분투 (최신 버전으로 쉽게 업데이트 부스트에 기능을 추가하기 때문에, 좋은 생각이 될 것 엘리아스 Kouskoumvekakis의 추가 지침에 따라이 솔루션을 복구 sudo apt update; sudo apt upgrade업그레이드 모두 에 패키지를 부스트에 적합한 패키지 리포지토리를 찾고 원하는 경우 시스템에서 부스트를 매우 쉽게 삭제하려는 경우 리포지토리의 최신 버전). 수동 접근 방식은 이러한 작업을 어렵게하므로 패키지 관리자의 이점을 생략해야 할 충분한 이유가 필요합니다.
차이 티 렉스

1
또한 패키지 관리자없이 설치 하는 데 필요한 빌드 지침이 포함 된 이전 답변 에서 더 잘 다룹니다 .
차이 티 렉스
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.