boost 튜토리얼
부스트 시작하기
수색…
비고
부스트 란 무엇입니까?
Boost는 광범위한 주제를 다루는 무료 고품질 C ++ 라이브러리의 대규모 모음입니다. Boost를 사용하면 C ++의 많은 공통적 인 문제가 해결되므로 C ++의 "두 번째 표준 라이브러리"로 간주됩니다.
Boost는 무료 peer-reviewed 휴대용 C ++ 소스 라이브러리를 제공합니다.
우리는 C ++ 표준 라이브러리와 잘 작동하는 라이브러리를 강조합니다. Boost 라이브러리는 광범위하게 유용하며 광범위한 응용 프로그램에서 사용할 수 있습니다. Boost 라이센스는 상업적 사용과 비상업적 사용을 장려합니다.
일부 부스트 라이브러리도 한 길하게 는 C ++ 11 표준 라이브러리로, 그리고 같은, 다른 Boost.Optional 및 Boost.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의 최신 버전을 가져오고 있는지 확인하십시오.
- www.boost.org를 방문하십시오.
- Current Release 다운로드를 찾으십시오. 현재 여기에 링크되어 있습니다 .
- 운영 체제에 적합한 아카이브 파일을 선택하고 다운로드하십시오.
그런 다음 각 헤더 파일을 간단히 포함하여 헤더 전용 라이브러리를 사용할 수 있습니다.
몇몇 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()