본 문서는 소스 코드를 이용해 boost 라이브러리를 빌드하고 비주얼 스튜디오와 연동하는 방법에 대해 다루고 있다.
포스트의 부록으로 윈도우 환경에서 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" 디렉토리를 지정했다.
- lib : '프로젝트 속성 > 구성 속성 > 링커 > 일반 > 추가 라이브러리 디렉터리'에 boost 라이브러리 디렉토리의 위치를 지정한다. 아래 예에서는 부스트를 다운로드하고 빌드한 "C:\Users\Administrator\Downloads\boost_1_76_0\stage\lib" 디렉토리를 지정했다.
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 파일
아래 스크립트에서 INSTALL_PATH를 내가 원하는 패스로 수정하고 사용하도록 하자. boost 버전도 1.76.0으로 설정 되었으나 원한다면 다른 버전으로 변경해도 된다.
REM @echo off
SET INSTALL_PATH=C:\local
SET BOOST_VERSION=1.76.0
ECHO install directory: %INSTALL_PATH%
ECHO boost version: %BOOST_VERSION%
SET BOOST_PATH=boost_%BOOST_VERSION:.=_%
if not exist %INSTALL_PATH% mkdir %INSTALL_PATH%
pushd .
if not exist .\%BOOST_PATH%.zip powershell -Command "Invoke-WebRequest https://boostorg.jfrog.io/artifactory/main/release/%BOOST_VERSION%/source/%BOOST_PATH%.zip -OutFile %BOOST_PATH%.zip"
if not exist %INSTALL_PATH%\%BOOST_PATH% "tar" -xf .\%BOOST_PATH%.zip -C %INSTALL_PATH%
cd /d "%INSTALL_PATH%\%BOOST_PATH%"
if not exist b2.exe call .\bootstrap.bat
.\b2
popd
아래 배치 스크립트를 실행하면 boost 1.76.0 버전을 다운 받아 C:\local\boost_1_76_0 위치에 설치한다.
부록 3. 같이 읽으면 좋은 글