How to build the C++ boost library 1.54.0 on windows



[환경]

- Windows 7 32/64 bit
- Visual Studio 2010
(위 환경은 본인이 집과 회사에서 사용하는 개발 환경이다.)


[준비물]

물론, 아래의 준비물이 꼭 다 필요한 것은 아니다.
boost library는 매우 다양한 종류의 라이브러리들이 모여 있으며,
컴파일이 필요없는 #define 매크로 형태에서부터 Template Meta Programming 형태, 
그리고 시스템 종속성으로 인해 컴파일이 필요한 형태까지 다양하다.
아래의 준비물 들은 boost를 통째로 컴파일 하기 위한 환경이며,
boost의 구성물을 선별적으로 사용하고자 한다면,
홈페이지의 Getting Started 를 참고하여 
자신이 필요한 라이브러리가 컴파일이 필요한지
필요하다면 아래의 라이브러리들에 종속성이 있는지를 확인하여 사용하는 것이 좋다.
컴파일이 필요한 라이브러리들은 개별 메뉴얼에 컴파일 방법이 소개되어 있다.

boost library source files (1.45.0)
홈페이지는 여기 , 다운로드 페이지는 여기 , 다운로드 링크는 여기


bzip2 (1.0.6)
홈페이지는 여기 , 다운로드 페이지는 여기 , 다운로드 링크는 여기

zlib (1.2.8)
홈페이지는 여기 , 다운로드 링크는 여기

icu (icu4c 51.2)
홈페이지는 여기 , 다운로드 페이지는 여기 , 다운로드 링크는 여기

python (2.7.5)
홈페이지는 여기 , 다운로드 페이지는 여기 , 다운로드 링크는 여기

7-zip command line tool
홈페이지는 여기 , 다운로드 페이지는 여기 , 다운로드 링크는 여기


[파일 및 폴더 구성]

아래는 본인이 애용하는 빌드 자동화를 위한 폴더 및 파일 구조를 나타낸 것이다.
설치 시에 뒤에 오는 배치파일을 분석하여 본인 취향대로 수정해도 무방하다.
볼드체가 폴더명이다.
이탤릭체로 표현된 build_1_54_0.bat 파일은 아래의 [배치파일 만들기]를 참고하도록 한다.

~/boost
         build_1_54_0
              arc
                   boost_1_54_0.7z
                   bzip2-1.0.6.tar.gz
                   icu4c-51_2-src.zip
                   Python-2.7.5.tgz
                   zlib-1.2.8.tar.gz
              bin
                   7za.exe
         build_1_54_0.bat


[배치파일 만들기]

위 파일들이 모두 갖추어졌다면 아래와 같은 내용의 배치파일을 만든다.
본인은 build_1_54_0.bat 라는 이름으로 배치파일을 만들었다.
아래 스크립트 중 볼드&이탤릭체로 된 부분은 본인의 환경과 목적에 맞추어 수정하면 된다.
예를 들어 VS2008 사용자는 10.0을 9.0으로 수정하고, 라이브러리를 무조건 DLL 파일로 분리 배포하고 싶다면 static,sharedshared로 바꾸면 된다. 나머지도 비슷하게 하면 된다.

set path=%path%;%cd%\bin;

: zlib 1.2.8
7za x -o"%cd%\tmp" arc\zlib-1.2.8.tar.gz
7za x -o"%cd%\tmp" "%cd%\tmp\zlib-1.2.8.tar"
set ZLIB_SOURCE="%cd%\tmp\zlib-1.2.8"

: bzip2 1.0.6
7za x -o"%cd%\tmp" arc\bzip2-1.0.6.tar.gz
7za x -o"%cd%\tmp" "%cd%\tmp\bzip2-1.0.6.tar"
set BZIP2_SOURCE="%cd%\tmp\bzip2-1.0.6"

: python 2.7.5
7za x -o"%cd%\tmp" arc\Python-2.7.5.tgz
7za x -o"%cd%\tmp" "%cd%\tmp\Python-2.7.5.tar"
set PYTHON_ROOT="%cd%\tmp\Python-2.7.5"
set PYTHON_VERSION=2.7

: icu 51.2
7za x -o"%cd%\tmp" arc\icu4c-51_2-src.zip
set ICU_PATH="%cd%\tmp\icu\source\common"

: boost 1.54.0
7za x -o"%cd%\tmp" arc\boost_1_54_0.7z

: b2
pushd tmp\boost_1_54_0\tools\build\v2
call bootstrap.bat
b2 install --prefix="..\..\..\..\b2"
popd
set path=%path%;%cd%\tmp\b2\bin;

: compile
pushd tmp\boost_1_54_0
b2 --prefix=%cd%\..\..\.. --without-mpi toolset=msvc-10.0 variant=debug,release link=static,shared runtime-link=static,shared threading=single,multi address-model=32 install
popd

: clear
rmdir /s /q tmp


[인스톨]

마지막으로 위의 배치파일을 실행시키면 boost 폴더 하위에
include와 lib 폴더가 생길 것이다.
생성되는 두 폴더를 가져다 사용하면 된다.


현재 빌드에는 boost.MPI 는 포함되어 있지 않다.
언젠가는 포함 하겠지만, 당장 필요도 없고 바쁜 관계로 무기한 보류 중이다.

현재 Python은 2.x와 3.x로 양분되어 있으며, 
2.x도 2.5 , 2.6 , 2.7 세 가지 버전이 혼재되어 쓰이고 있다.
본인은 현재 가장 널리 쓰이며 호환성 문제가 없는 2.7 기준으로 빌드하였다.
사용자는 자기가 원하는 버전을 이용하면 되겠다.


'open source > boost' 카테고리의 다른 글

boost library 1.45.0 build on windows  (0) 2010.12.29
boost library 1.44.0 build on windows  (0) 2010.12.29
boost library  (0) 2010.12.28