메뉴 닫기

boost 라이브러리 빌드하기

boost는 C++ 기반의 유용한 라이브러리 집합입니다. 윈도우 환경 기준으로 Boost 라이브러리를 빌드해서 사용해보도록 하겠습니다.

1. 다운로드 하기

https://www.boost.org/users/download/에 접속하여 boost 소스 압축파일을 다운로드 합니다.

Prebuilt된 윈도우 바이너리를 다운로드 받을 수 있으나, 직접 빌드하는 방법을 소개하겠습니다.



https://www.boost.org/users/download


2. 빌드하기

  1. 압축파일을 해제합니다.
  2. boostrap.bat을 실행합니다. b2.exe와 bjam.exe가 생성됩니다.
  3. 명령 프롬프트(cmd)를 열고 압축을 푼 디렉토리로 이동합니다.
  4. 명령 프롬프트에서 현재 디렉터리를 Boost 디렉터리로 변경합니다.
  5. boost 설치를 위해 b2.exe를 실행합니다.
    이해를 돕기 위해 ‘빌드 예제’를 먼제 보여드리고, 빌드 옵션 및 속성을 소개하도록 하겠습니다.

★ 예제

b2.exe -j8 -a toolset=msvc-14.2 variant=debug,release link=static threading=multi address-model=64 runtime-link=shared

가장 일반적인 빌드 조건입니다. 환경 및 옵션에 따라 다르지만 빌드 소요시간이 제법 걸립니다. 커피한 잔 드시고 오세요 🙂

★ 사용법

b2.exe [options] [properties] [install|stage]

ⓐ Option

옵션
-a 전체 재빌드
-j N 병렬빌드. N은 CPU의 물리적 코어 수로 지정
–clean 빌드 정리
–with-<library> 특정 라이브러리만 빌드
–without-<library> 특정 라이브러리만 빌드 하지 않음
[install 관련 옵션]: 헤더와 컴파일된 라이브러리 파일을 아래와 같이 구성된 위치에 설치함
–prefix=<PREFIX> 아키텍처 독립파일 설치 위치
Default: C:Boost (Windows)
/usr/local (Linux 등)
–exec-prefix=<EPREFIX> 아키텍트 의존파일 설치 위치
Default: <PREFIX>
–libdir=<LIBDIR> 라이브러리 파일 설치 위치
Default: <EPREFIX>/lib
–includedir=<HDRDIR> 헤더 파일 설치 위치
Default: <PREFIX>/include
–cmakedir=<CMAKEDIR> CMake configuration 파일 설치 위치
Default: <LIBDIR>/cmake
–no-cmake-config CMake configuration 파일을 설치하지 않음
[stage 관련 옵션]: 컴파일된 라이브러리 파일만 stage 디렉토리에 빌드 및 설치함
–stagedir=<STAGEDIR> 라이브러리 파일 설치 위치
Default: ./stage

※ 좀 더 자세한 옵션 설명은 명령 프롬프트 창에 b2.exe –help 를 입력하면 확인할 수 있습니다.

ⓑ Properties

toolset 컴파일러 지정
msvc-14.2 (vs2019) / msvc-14.1 (vs2017) / msvc-14.0 (vs2015)
variant debug 또는 release
link static 또는 shared
threading single 또는 multi
runtime-link static 또는 shared
address-model 32 또는 64

3. Output 확인하기

j2.exe를 실행하고 나면, ./stage 폴더가 생성됩니다. stage폴더에 들어가면 lib 폴더가 있습니다.

앞서 보여드린 예제 옵션으로 빌드하면 (threading=multi, link=static, runtime-link=shared),

libboost_<library>-vc141-mt-x64-1_78.lib 

libboost_<library>-vc141-mt-gd-x64-1_78.lib 

위와 같은 이름 규칙의 lib 파일들이 잔뜩 보이게 됩니다. 규칙에 대한 설명은 아래 표를 참고해 주세요.

variant=release  runtime-link=shared -mt /MD (Multi-Threaded DLL)
variant=debug  runtime-link=shared -mt-gd /MDd (Multi-Threaded Debug DLL)
variant=release  runtime-link=static -mt-s /MT (Multi-Threaded)
variant=debug  runtime-link=static -mt-sgd /MTd (Multi-Threaded Debug)

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다