수색…


비고

부스트 란 무엇입니까?

Boost는 광범위한 주제를 다루는 무료 고품질 C ++ 라이브러리의 대규모 모음입니다. Boost를 사용하면 C ++의 많은 공통적 인 문제가 해결되므로 C ++의 "두 번째 표준 라이브러리"로 간주됩니다.

boost.org에서 :

Boost는 무료 peer-reviewed 휴대용 C ++ 소스 라이브러리를 제공합니다.

우리는 C ++ 표준 라이브러리와 잘 작동하는 라이브러리를 강조합니다. Boost 라이브러리는 광범위하게 유용하며 광범위한 응용 프로그램에서 사용할 수 있습니다. Boost 라이센스는 상업적 사용과 비상업적 사용을 장려합니다.

일부 부스트 라이브러리도 한 길하게 는 C ++ 11 표준 라이브러리로, 그리고 같은, 다른 Boost.OptionalBoost.Variant는 , C ++ (17)의 일부가 될 것입니다.

Boost는 무엇을 할 수 있습니까?

Boost는 프로그래밍의 대부분의 부분을 다룹니다. 스택 오버플로에 대한 부스트 태그 위키 에서 :

여기에는 다음을위한 라이브러리가 포함됩니다.

  • 문자열 및 텍스트 처리
  • 컨테이너
  • 반복기
  • 알고리즘
  • 함수 객체와 higher-order 프로그래밍
  • 일반 프로그래밍
  • 템플릿 메타 프로그래밍
  • 프리 프로세서 메타 프로그래밍
  • 동시 프로그래밍
  • 수학 및 숫자
  • 정확성 및 테스트
  • 데이터 구조
  • 이미지 처리
  • 입출력
  • 언어 간 지원
  • 기억
  • 파싱
  • 프로그래밍 인터페이스
  • 여러 가지 잡다한
  • 깨진 컴파일러 해결 방법

버전

번역 새 라이브러리 릴리즈 노트 출시일
1.10.0 노트 1999-12-14
1.11.0 유리수 노트 2000-02-01
1.12.0 노트 2000-02-23
1.13.0 유틸리티, 유형 특성, 호출 특성, 압축 쌍 노트 2000-02-29
1.14.0 노트 2000-03-05
1.15.0 난수 노트 2000-06-17
1.16.0 기능적, 반복자 헤더 노트 2000-06-28
1.17.0 정렬 노트 2000-08-03
1.18.0 그래프, 정규식 노트 2000-09-28
1.19.0 개념 검사, 파이썬, 정적 Assert,
속성 맵 개념
노트 2000-12-10
1.20.0 변환 노트 2001-01-06
1.21.0 반복기 어댑터, 풀, 테스트 노트 2001-03-09
1.22.0 CRC 노트 2001-05-25
1.23.0 Any, Function, Tokenizer,
특수 함수, Octonions, Quaternions
노트 2001-07-06
1.24.0 튜플 노트 2001-08-19
1.25.0 스레드, 바인드 노트 2001-10-01
1.26.0 공통 요소, 전 처리기 노트 2001-11-30
1.27.0 노트 2002-02-05
1.28.0 람다, I / O 상태 보호기 노트 2002-05-15
1.29.0 날짜 - 시간, 동적 비트 셋, 형식 노트 2002-10-10
1.30.0 파일 시스템, 선택 사항, 간격, MPL, 성령 노트 2003-03-19
1.31.0 enable_if, 변형 노트 2004-01-26
1.32.0 할당, Minmax, 다중 색인,
숫자 변환, 프로그램 옵션, 범위,
직렬화, String, Tribool
노트 2004-11-19
1.33.0 Iostream, 해시, 매개 변수,
포인터 컨테이너, 웨이브
노트 2005-08-11
1.34.0 Foreach, Statechart, TR1, Typeof, Xpressive 노트 2007-05-12
1.35.0 Asio, Bimap, 순환 버퍼, 함수 유형,
퓨전, GIL, 프로세스 간, 침입 형,
수학 / 특수 기능,
수학 / 통계 분포, MPI, 시스템
노트 2008-03-29
1.36.0 어큐뮬레이터, 예외, 단위, 정렬되지 않은 노트 2008-08-14
1.37.0 프로토 노트 2008-11-03
1.38.0 플라이급, 스코프 종료, 스왑 노트 2009-02-08
1.39.0 신호 2 노트 2009-05-02
1.40.0 노트 2009-08-27
1.41.0 특성 트리 노트 2009-11-17
1.42.0 위이드 노트 2010-02-02
1.43.0 기능 / 요소, 기능 / 전달 노트 2010-05-06
1.44.0 메타 상태 머신, 다각형 노트 2010-08-13
1.45.0 노트 2010-11-19
1.46.0 Icl 노트 2011 년 2 월 21 일
1.46.1 노트 2011-03-12
1.47.0 크로노, 기하학, 피닉스, 비율 노트 2011 년 7 월 11 일
1.48.0 컨테이너, 로켈, 이동 노트 2011 년 11 월 15 일
1.49.0 더미 노트 2012-02-24
1.50.0 알고리즘, 기능 / 과부하 기능,
LocalFunction, 유틸리티 / IdentityType
노트 2012-06-28
1.51.0 문맥 노트 2012-08-20
1.52.0 노트 2012-11-05
1.53.0 원자, 코 루틴, Lockfree, 다중 정밀도,
오데 인트
노트 2013-02-04
1.54.0 로그, TTI, 유형 삭제 노트 2013-07-01
1.55.0 사전 정의 노트 2013-11-11
1.56.0 정렬, TypeIndex 노트 2014-08-07
1.57.0 노트 2014-11-03
1.58.0 엔디 언, 정렬 노트 2015-04-17
1.59.0 Convert, 코 루틴 2 노트 2015-08-13
1.60.0 VMD 노트 2015-12-17
1.61.0 계산, DLL, 하나, 메타 패스 노트 2016-05-13
1.62.0 광섬유, QVM 노트 2016-09-28
1.63.0 노트 2016-12-26
1.64.0 방법 노트 2017-04-19

설치 또는 설정

부스트 시작하기를 참조하십시오.

Boost 라이브러리의 대부분은 헤더 전용입니다. 즉, 컴파일하거나 링크 할 필요가 없습니다.

Boost의 최신 버전을 가져오고 있는지 확인하십시오.

  1. www.boost.org를 방문하십시오.
  2. Current Release 다운로드를 찾으십시오. 현재 여기에 링크되어 있습니다 . 부스트 웹 사이트에서 어디에서 부스트를 다운로드 할 수 있는지 보여줍니다.
  3. 운영 체제에 적합한 아카이브 파일을 선택하고 다운로드하십시오.

그런 다음 각 헤더 파일을 간단히 포함하여 헤더 전용 라이브러리를 사용할 수 있습니다.

몇몇 Boost 라이브러리는 컴파일이 필요합니다 :

  • 부스트. 크로노
  • Boost.Context
  • 부스트. 파일 시스템
  • Boost.GraphParallel
  • 부스트 .IOStreams
  • 부스트. 로케일
  • 부스트 .MPI
  • Boost.ProgramOptions
  • Boost.Python
  • 부스트. 정규식
  • 부스트. 직렬화
  • 부스트 시그널
  • 부스트 시스템
  • 부스트. 스레드
  • 부스트 타이머.
  • Boost.Wave

또한 다음 라이브러리에는 컴파일해야하는 구성 요소가 있습니다.

  • Boost.DateTime

  • 부스트. 그래프

  • 부스트. 수학

  • 부스트. 랜덤

  • 부스트 테스팅

  • Boost.Exception

Boost의 소스 는 사이트다운로드 링크를 통해 얻을 수 있으며,이 링크SourceForge 의 최신 버전 (2016 년 7 월 기준 1.61.0) 으로 리디렉션 됩니다. 디렉토리 (예 : C : \ local \ boost_1_61_0)에 압축을 풀거나 해제 할 수 있습니다. 그런 다음이 디렉토리를 빌드중인 소프트웨어의 포함 경로에 추가 할 수 있습니다. 이 후, #include <boost/header/path.hpp> 하여 C ++ 파일에 부스트 헤더를 포함시킬 수 있습니다.

Boost에있는 대부분의 라이브러리는 헤더 전용입니다. 이들이 필요한 경우 위의 소스 배포 만 있으면됩니다. 그러나 컴파일 된 바이너리가 필요한 라이브러리 중 하나를 사용해야하는 경우이를 컴파일해야합니다.

모든 시스템에서 올바른 바이너리를 얻는 가장 확실한 방법은 직접 빌드하는 것입니다. 이 지침은 Windows 또는 Linux / Unix / POSIX에서 다소 다릅니다.

Visual Studio가 설치된 Windows에서 라이브러리를 직접 빌드하는 대신 Boost의 SourceForge 페이지 (2016 년 7 월 기준 1.61.0) 에서 사전 빌드 된 라이브러리를 다운로드 할 수 있습니다. 이 페이지에서 특정 Visual Studio 빌드의 버전을 설치하는 설치 관리자 또는 지원되는 모든 Visual Studio 버전의 바이너리가 들어있는 7-zip 파일 (boost_X_XX_X-bin-all-32-64.7z)을 선택할 수 있습니다. 이 옵션들 중 하나는 소스 / 헤더와 바이너리를 포함하기 때문에 위의 소스 배포판을 다운로드 할 필요가 없습니다. C : \ local \ boost_1_61_0과 같은 디렉토리에 압축을 풀고 설치하고 include 경로에 해당 디렉토리를 추가 한 다음 사용중인 Visual Studio 버전 (예 : C : \)에 해당하는 바이너리가 들어있는 디렉토리를 추가합니다. Visual Studio 2013 32 비트 프로젝트의 경우 local \ boost_1_61_0 \ lib32-msvc-12.0)을 라이브러리 경로에 추가합니다.

부스트 설치 및 실행 (Cygwin)

(초급, IDE : CLion)

첫째, Cygwin 미러에서 부스트를 설치하십시오 : 설치 exe를 열고, 부스트를 검색하고, 패키지를 설치하십시오.


부스트가 설치되면 /usr/include/boost 합니다. 이것은 모든 것이있는 곳입니다. 모든 #include 문은 다음과 같이 boost 폴더의 경로가됩니다 : #include <boost/archive/text_oarchive.hpp> .


원하는 확장 파일을 .cpp 파일에 포함 시키면 라이브러리링크 하고 다운로드 된 부스트 코드를 검색하도록 cmake 에게 알릴 때까지 코드가 여전히 IDE IDE에서 컴파일되지 않습니다.


cmake가 부스트 코드를 검색하게하려면,

find_package(Boost 1.60.0 COMPONENTS components_you_want)

# for example: 
find_package(Boost 1.60.0 COMPONENTS serialization)

그런 다음 include_directories(${Boost_INCLUDE_DIRS}) 디렉토리를 포함하십시오.

마지막으로 실행 파일을 추가하고 라이브러리를 링크하십시오.

add_executable(your_target ${SOURCE_FILES})
target_link_libraries(your_target ${Boost_LIBRARIES} -any_missing_boostlibs)

프로그램을 시작하기 전에 아무 것도 포함하거나 코드를 실행하기 전에 boost가 발견되었는지 테스트하여 오류 덤프를 방지하십시오.

if (Boost_FOUND)
    include_directories(${Boost_INCLUDE_DIRS})
    add_executable(YourTarget ${SOURCE_FILES})
    target_link_libraries(your_target ${Boost_LIBRARIES} -missing_libs)        
endif()

실행 오류가 있기 때문에 일부 부스트 라이브러리 나 다른 라이브러리가 링크되지 않았을 수 있으며 수동으로 추가해야합니다 (예 : 앞서 언급 한 링크) . -missing_libs 포함 시켰습니다.


모두 함께, 마지막 CMakeLists.txt 파일은 다음과 같이 보일 것입니다 :

cmake_minimum_required(VERSION 3.7)
project(your_project)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(SOURCE_FILES main.cpp tmap.cpp tmap.h)
find_package(Boost 1.60.0 COMPONENTS serialization)

if(Boost_FOUND)
    include_directories(${Boost_INCLUDE_DIRS})
    add_executable(your_project ${SOURCE_FILES})
    target_link_libraries(your_project ${Boost_LIBRARIES})
endif()


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow