[Visual Studio][boost c++] [C++] boost 설치 및 visual studio 설정 

본 문서는 소스 코드를 이용해 boost 라이브러리를 빌드하고 비주얼 스튜디오와 연동하는 방법에 대해 다루고 있다.

1. 비주얼 스튜디오 설치

윈도우에서 boost를 설치하기 위해서는 비주얼 스튜디오의 cl.exe가 필요하다. 이미 설치되어 있다면 다음 장으로 바로 진행 해도 된다. 만일 아직 비주얼 스튜디오가 설치 되지 않은 상태라면 먼저 [여기]에서 비주얼 스튜디오를 다운 받고 설치하도록 한다.

2. boost 다운로드

boost 라이브러리는 https://www.boost.org/의 다운로드 페이지에서 다운로드 할 수 있다. 이 글을 쓰는 시점엔 1.76.0버전이 최신인데 처음 부스트를 접하는 사람이라면 최신 버전을 다운 받길 권한다. 필자의 경우는 zip으로 쉽게 압축을 풀기 위해 boost_1_76_0.zip를 다운 받았다.

 

 

웹사이트에서 직접 다운 받는 방법 말고도 윈도우10의 PowerShell을 통해 커맨드를 이용해 다운로드 받을 수도 있다. 물론 다운로드 주소는 알고 있어야 한다.

 
 

Invoke-WebRequest https://boostorg.jfrog.io/artifactory/main/release/1.76.0/source/boost_1_76_0.zip -OutFile boost_1_76_0.zip

3. 압축 풀기

다운로드가 완료 되면 압축을 해제한다. 인터넷에 무료로 제공되는 여러 압축해제 프로그램이 있으므로 무엇을 사용하던지 관계는 없다. 필자의 경우는 윈도우 PowerShell의 tar를 이용하여 압축을 해제 했다.

PS C:\Users\Administrator\Downloads> tar -xf .\boost_1_76_0.zip -C "./"

4. bootstrap.bat 실행

압축 해제 된 boost 디렉토리로 이동하여 bootstrap.bat를 실행한다. 파일 탐색기에서 마우스로 더블 클릭해도 되고 필자 처럼 PowerShell에서 커맨드로 실행해도 된다.

PS C:\Users\Administrator\Downloads\boost_1_76_0> .\bootstrap.bat

결과로써 b2.exe, bjam.exe 파일이 만들어진다. 

5. b2.exe 실행

이제 실제 boost 라이브러리를 빌드 하는 순서다. boost는 기본적으로 헤더만 include하면 되는 헤더 기반 라이브러리지만 몇몇 라이브러리는 별도 빌드가 필요하다. 빌드가 필요한 라이브러리들에 대한 자세한 사항은 [여기]를 참고한다.

단순히 b2.exe를 실행하면 기본 옵션으로 boost 라이브러리를 빌드한다.

PS C:\Users\Administrator\Downloads\boost_1_76_0> .\b2.exe

라이브러리 빌드가 정상적으로 나오면 아래와 같이 include 디렉토리와 lib 디렉토리가 출력 된다. 원하는 위치로 빌드된 라이브러리를 복사해서 옮겨도 상관 없다.

The Boost C++ Libraries were successfully built!

The following directory should be added to compiler include paths:

​​​​C:\Users\Administrator\Downloads\boost_1_76_0

The following directory should be added to linker library paths:

​​​​C:\Users\Administrator\Downloads\boost_1_76_0\stage\lib

만일 비주얼 스튜디오가 이미 여러개 설치 되어 있어 특정 버전을 명시 하고 싶다면 아래와 같이 --toolset 옵션을 통해 컴파일러 버전을 명시해준다. 컴파일러 버전 별 옵션 값은 아래 [부록 1]을 참고 하자.

 
 

.\b2.exe --toolset=msvc-14.2

6. 비주얼 스튜디오와 연동

boost 라이브러리의 빌드가 완료 되었으면 이번에는 비주얼 스튜디오 프로젝트에서 boost 라이브러리를 연동 하도록 한다.

  • include : '프로젝트 속성 > 구성 속성 > C/C++ 일반 > 추가 포함 디렉터리'에 boost 헤더 디렉토리의 위치를 지정한다. 아래 예에서는 부스트를 다운로드하고 빌드한 "C:\Users\Administrator\Downloads\boost_1_76_0" 디렉토리를 지정했다.

 

boost include path

 

  • lib : '프로젝트 속성 > 구성 속성 > 링커 > 일반 > 추가 라이브러리 디렉터리'에 boost 라이브러리 디렉토리의 위치를 지정한다. 아래 예에서는 부스트를 다운로드하고 빌드한 "C:\Users\Administrator\Downloads\boost_1_76_0\stage\lib" 디렉토리를 지정했다.

 

boost lib path

 

7. 마치며

이상 C++의 boost 라이브러리를 설치하고 비주얼 스튜디오와 연동하는 방법에 대해 알아 보았다. 아래 부스트 사용 예제를 살펴 보며 포스트를 마치도록 한다.

 
 

#include <boost/regex.hpp> #include <iostream> #include <string> int main() { ​​​​std::string line; ​​​​boost::regex pat("^Subject: (Re: |Aw: )*(.*)"); ​​​​while (std::cin) ​​​​{ std::getline(std::cin, line); ​​​​​​​​boost::smatch matches; ​​​​​​​​if (boost::regex_match(line, matches, pat)) ​​​​​​​​{ ​​​​​​​​​​​​std::cout << matches[2] << std::endl; ​​​​​​​​} ​​​​} }

부록 1. --toolset 옵션

 
 

b2.exe --toolset=msvc-XX.X

  • Visual Studio 2008 v9.0 : msvc-9.0
  • Visual Studio 2010 v10.0 : msvc-10.0
  • Visual Studio 2012 v11.0 : msvc-11.0
  • Visual Studio 2013 v12.0 : msvc-12.0
  • Visual Studio 2015 v14.0 : msvc-14.0
  • Viusal Studio 2017 v15.0 : msvc-14.1
  • Viusal Studio 2017 v15.3 : msvc-14.11
  • Viusal Studio 2017 v15.5 : msvc-14.12
  • Viusal Studio 2017 v15.6 : msvc-14.13
  • Viusal Studio 2017 v15.7 : msvc-14.14
  • Viusal Studio 2017 v15.8 : msvc-14.15
  • Viusal Studio 2017 v15.9 : msvc-14.16
  • Viusal Studio 2019 v16.0 : msvc-14.2
  • Viusal Studio 2019 v16.1 : msvc-14.21

부록 2. boost 다운로드 및 설치 bat 파일

 
 

if not exist "C:\local" mkdir "C:\local" pushd . if not exist ".\boost_1_76_0.zip" powershell -Command "Invoke-WebRequest https://boostorg.jfrog.io/artifactory/main/release/1.76.0/source/boost_1_76_0.zip -OutFile boost_1_76_0.zip" if not exist "C:\local\boost_1_76_0" "tar" -xf .\boost_1_76_0.zip -C "C:\local" cd /d "C:\local\boost_1_76_0" if not exist b2.exe call .\bootstrap.bat .\b2 popd

아래 배치 스크립트를 실행하면 boost 1.76.0 버전을 다운 받아 C:\local\boost_1_76_0 위치에 설치한다.

boost_install.bat


출처: https://kukuta.tistory.com/289#google_vignette [HardCore in Programming]

 

 

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
226 [C/C++][tensorflow 1.x] windows C lib : [Tensorflow] How to Install Tensorflow for C API file 졸리운_곰 2021.11.19 0
225 [C/C++][tensorflow] tensorflovw 1.x version 텐서플로우 C 예제 file 졸리운_곰 2021.11.19 1
» [Visual Studio][boost c++] [C++] boost 설치 및 visual studio 설정 file 졸리운_곰 2021.11.18 0
223 [리눅스 마스터][linux, UNIX] 전설의 라인 에디트 Man page — ED 사용법 졸리운_곰 2021.11.18 0
222 [리눅스 마스터][linux, UNIX] [편집][shell] ed (line editer) 사용예 졸리운_곰 2021.11.17 0
221 [C/C++][gnuplot][수학][MFC] Windows 환경의 C++ 언어에서 gnuplot을 사용한 그래프 출력 2 file 졸리운_곰 2021.11.12 0
220 [C/C++][gnuplot][수학][MFC] Windows 환경의 C++ 언어에서 gnuplot을 사용한 그래프 출력 file 졸리운_곰 2021.11.12 2
219 [C/C++ 인공지능][linux][cuda] flashlight file 졸리운_곰 2021.11.09 2
218 [C/C++] C++ Basic Input/Output 졸리운_곰 2021.11.06 4
217 [C/C++] Console Input/Output Functions in C file 졸리운_곰 2021.11.05 0
216 [C/C++ 프로그래밍] CMake 예제 졸리운_곰 2021.11.04 5
215 C/C++의 만년, 패키지 매니저 file 졸리운_곰 2021.11.04 2
214 [docker][도커] 로컬 개발환경 Docker 사용하기 file 졸리운_곰 2021.10.16 2
213 [unix][linux][compiler] Yacc와 Lex 시작하기 file 졸리운_곰 2021.09.08 2
212 [Docker][도커] docker 이미지 및 컨테이너 관리 명령어 정리 file 졸리운_곰 2021.08.29 5
211 [docker][도커] 컨테이너 시작, 중지, 재시작 졸리운_곰 2021.08.29 1
210 [Visual Studio 2019] Visual Studio로 Linux 원격 개발하기(Ubuntu 설치부터 SSH 서버접속까지) file 졸리운_곰 2021.08.29 4
209 [unix][emacs] 이맥스와 함께하는 개발환경 . emacs 튜토리얼 file 졸리운_곰 2021.08.18 6
208 [DOCKER] 도커_컨테이너 생성, 시작, 정지 file 졸리운_곰 2021.08.15 2
207 [쿠버네티스][Kubernetes] Helm 사용법 file 졸리운_곰 2021.07.19 4
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED