Boost Library
Boost 라이브러리는 다음 페이지에서 받을 수 있다.
23년 03월 기준 1.81.0이 최신 버전이다.
받은 파일의 압축을 해제하고, bootstrap.bat 파일을 실행한다.
b2.exe와 bjam.exe 파일이 생성된다.
생성된 b2.exe 파일을 이용해 boost library를 build 할 수 있다.
관련해 자세한 사항들은 아래 링크를 참조할 수 있다.
추가로 b2.exe 응용의 기본적인 사용 방법은 b2.exe –help를 통해서도 확인할 수 있다.
Build Boost Library
b2.exe 응용의 빌드 옵션은 사용 환경과 방법에 따라 다양하다.
여기서는 MSVC 143 환경에서 debug 및 release 모드 모두 빌드하였다. 본 라이브러리를 사용하는 프로젝트 환경에 따라 link 방식과 address-model을 설정한다.
Link 방식 default 값은 shared 이며, static 으로 지정하려 하는 경우 아래와 같이 link=static으로 명시한다.
b2.exe -j4 -a --toolset=msvc-14.3 variant=debug,release link=static threading=multi address-model=64 -sZLIB_SOURCE=C:\Lib\zlib-1.2.13 -sZLIB_INCLUDE=C:\Lib\zlib-1.2.13
별다른 경로 옵션 없이 빌드하는 경우 library 파일들은 boost폴더 밑에 stage/lib 폴더에 생성된다.
Boost library에서 iostreams의 zlib 를 사용할 경우 zlib 관련 파일이 필요하다.
Boost Library를 그냥 compile 할 경우,
libboost_zlib-vc000-mt-gd-000.lib 파일을 찾을 수 없음
과 같은 link error가 발생한다.
Compile Boost library with zlib
이제 boost 컴파일 시 zlib를 연결해주면 되는데 아래와 같은 옵션을 추가해주면 된다.
zlib 버전에 맞도록 1.2.xx 부분을 교체하고, source파일이 존재하는 경로와 include 파일 경로를 잡아주면 된다.
-sZLIB_SOURCE=C:\Lib\zlib-1.2.xx -sZLIB_INCLUDE=C:\Lib\zlib-1.2.xx
예를 들어, 다른 파일은 필요 없이 iostreams 파일에 대해서 zlib와 함께 다시 컴파일 할 경우 아래와 같이 컴파일 할 수 있다.
–with-<library> 옵션을 사용하는 경우 해당 라이브러리만 빌드가 수행된다.
b2.exe -j4 -a --toolset=msvc-14.x variant=debug,release link=static threading=multi address-model=64 --with-iostreams -sZLIB_SOURCE=C:\Lib\zlib-1.2.xx -sZLIB_INCLUDE=C:\Lib\zlib-1.2.xx
컴파일이 완료되면 버전에 따라,
- libboost_iostreams-vc143-mt-gd-x64-1_81.lib
- libboost_iostreams-vc143-mt-gd-x64-1_81.lib
- libboost_zlib-vc143-mt-gd-x64-1_81.lib
- libboost_zlib-vc143-mt-x64-1_81.lib
와 같은 파일이 생성된다.
boost 컴파일이 제대로 되는 경우에도 zlib 컴파일은 제대로 실행되지 않는 경우도 있다.
Windows 10 환경이라면 Windows 10 SDK를 설치한다.