'boost'에 해당되는 글 4건

  1. 2013.08.15 How to build the C++ boost library 1.54.0 on windows
  2. 2010.12.29 boost library 1.45.0 build on windows
  3. 2010.12.29 boost library 1.44.0 build on windows
  4. 2010.12.28 boost library

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

boost library 1.45.0 build on windows



[환경]

- Windows XP + SP3 , Windows 7
- Visual Studio 2005 , Visual Studio 2008
(위 환경은 본인이 집과 회사에서 사용하는 개발 환경이다.)


[준비물]

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

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

boost jam (3.1.18)
다운로드 링크는 여기

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

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

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

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

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


[파일 및 폴더 구성]

아래는 본인이 애용하는 빌드 자동화를 위한 폴더 및 파일 구조를 나타낸 것이다.
설치 시에 뒤에 오는 배치파일을 분석하여 본인 취향대로 수정해도 무방하다.
볼드체가 폴더명이다.

~/boost_1_45_0
         build_1_45_0
              arc
                   boost_1_45_0.7z
                   bzip2-1.0.6.tar.gz
                   zlib-1.2.5.tar.gz
                   icu4c-4_6-src.zip
                   Python-2.5.5.tgz
                   zlib-1.2.5.tar.gz
              bin
                   7za.exe
                   bjam.exe
         build.2005.bat
         build.2008.bat
         configure.jam


[배치파일 만들기]

위 파일들이 모두 갖추어졌다면 아래와 같은 내용의 배치파일을 만든다.
본인은 build.2005.bat 과 build.2008.bat 라는 이름으로 배치파일을 만들었다.
두 배치파일의 차이는 아래 볼드체로 표시된 부분이 8.0 인가 9.0 인가의 차이이다.
자신의 컴파일러에 맞게 적용하여 사용하면 되며 본인은 둘 모두를 사용하기에 
두 개의 배치파일을 만들었다.

set path=%path%;%cd%\bin;
7za x -o"%cd%\tmp" arc\zlib-1.2.5.tar.gz 
7za x -o"%cd%\tmp" "%cd%\tmp\zlib-1.2.5.tar"
7za x -o"%cd%\tmp" arc\bzip2-1.0.6.tar.gz 
7za x -o"%cd%\tmp" "%cd%\tmp\bzip2-1.0.6.tar"
7za x -o"%cd%\tmp" arc\icu4c-4_6-src.zip 
7za x -o"%cd%\tmp" arc\boost_1_45_0.7z 
set ZLIB_SOURCE="%cd%\tmp\zlib-1.2.5"
set BZIP2_SOURCE="%cd%\tmp\bzip2-1.0.6"
set PYTHON_ROOT="%cd%\tmp\Python-2.5.5"
set PYTHON_VERSION=2.5
set ICU_PATH="%cd%\tmp\icu\source\common"

pushd tmp\boost_1_45_0\tools\build\v2\build\
move configure.jam configure.jam.org
popd
copy configure.jam tmp\boost_1_45_0\tools\build\v2\build\configure.jam


pushd tmp\boost_1_45_0
bjam --prefix=%cd%\..\..\.. --toolset=msvc-8.0 --build-type=complete debug release warnings=off --without-mpi install
popd
move %cd%\..\lib %cd%\..\lib.2005
rmdir /s /q tmp

※ 주의: 현재 최신 버전들 사이의 조합에 문제가 있다.
    위의 이탤릭체로 된 배치 프로세스는 버그 회피를 위한 코드로 원래는 필요가 없다.
    (원래 clean 환경과의 비교를 위하여 1.44.0 빌드 방법을 먼저 포스팅 하였다.)
    본인도 지금 이 글을 쓰며 위 버전들에 대하여 문제를 발견하였다.
    파일 및 폴더 구성의 configure.jam은 본 블로그에서 다운로드 하기 바란다.


본인이 제공하는 configure.jam 파일과 원본 사이에는 큰 차이가 없다.
145 행의 $(.log-fd) : ignore-minus-n : ignore-minus-q ] 가 
$(.log-fd) : ignore-minus-n ] 로 변경되었을 뿐 나머지는 모두 동일하다.
( 해당 버그에 대한 수정 방법은 여기를 참고하였다. )


[인스톨]

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


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

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

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

How to build the C++ boost library 1.54.0 on windows  (0) 2013.08.15
boost library 1.44.0 build on windows  (0) 2010.12.29
boost library  (0) 2010.12.28

boost library 1.44.0 build on windows


[환경]

- Windows XP + SP3 , Windows 7
- Visual Studio 2005 , Visual Studio 2008
(위 환경은 본인이 집과 회사에서 사용하는 개발 환경이다.)


[준비물]

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

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

boost jam (3.1.18)
다운로드 링크는 여기

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

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

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

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

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


[파일 및 폴더 구성]

아래는 본인이 애용하는 빌드 자동화를 위한 폴더 및 파일 구조를 나타낸 것이다.
설치 시에 뒤에 오는 배치파일을 분석하여 본인 취향대로 수정해도 무방하다.
볼드체가 폴더명이다.

~/boost_1_44_0
         build_1_44_0
              arc
                   boost_1_44_0.7z
                   bzip2-1.0.6.tar.gz
                   icu4c-4_4_2-src.zip
                   Python-2.5.5.tgz
                   zlib-1.2.5.tar.gz
              bin
                   7za.exe
                   bjam.exe
         build.2005.bat
         build.2008.bat


[배치파일 만들기]

위 파일들이 모두 갖추어졌다면 아래와 같은 내용의 배치파일을 만든다.
본인은 build.2005.bat 과 build.2008.bat 라는 이름으로 배치파일을 만들었다.
두 배치파일의 차이는 아래 볼드체로 표시된 두 부분이 전부이다.
(Visual Studio 2008을 쓴다면 8.0 → 9.0 , 2005 → 2008 로 변경하면 된다.)
각자 자신의 컴파일러에 맞게 수정하여 사용하면 되며 본인은 둘 모두를 사용하기에 
두 개의 배치파일을 만들었다.

set path=%path%;%cd%\bin;
7za x -o"%cd%\tmp" arc\zlib-1.2.5.tar.gz 
7za x -o"%cd%\tmp" "%cd%\tmp\zlib-1.2.5.tar"
7za x -o"%cd%\tmp" arc\bzip2-1.0.6.tar.gz 
7za x -o"%cd%\tmp" "%cd%\tmp\bzip2-1.0.6.tar"
7za x -o"%cd%\tmp" arc\Python-2.5.5.tgz
7za x -o"%cd%\tmp" "%cd%\tmp\Python-2.5.5.tar"
7za x -o"%cd%\tmp" arc\icu4c-4_4_2-src.zip 
7za x -o"%cd%\tmp" arc\boost_1_44_0.7z 
set ZLIB_SOURCE="%cd%\tmp\zlib-1.2.5"
set BZIP2_SOURCE="%cd%\tmp\bzip2-1.0.6"
set PYTHON_ROOT="%cd%\tmp\Python-2.5.5"
set PYTHON_VERSION=2.5
set ICU_PATH="%cd%\tmp\icu\source\common"
pushd tmp\boost_1_44_0
bjam --prefix=%cd%\..\..\.. --toolset=msvc-8.0 --build-type=complete debug release warnings=off --without-mpi install
popd
move %cd%\..\lib %cd%\..\lib.2005
rmdir /s /q tmp


[인스톨]

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


[끝으로]

원래 계획은 1.44.0 버전에 대한 설치 방법을 포스팅 할 계획은 없었다.
그러나 1.45.0 빌드 환경에 약간의 문제가 있고,
후에 수정될 계획이라고는 하나 
현재로써는 해당 문제를 회피하기 위한 잡다구레한 방법이 필요하다.
때문에, 1.45.0 빌드 방법을 보이기에 앞서 클린한 상태에 대해서도 보이고 싶었다.
매우 작은 차이겠지만, 이후 포스팅 될 1.45.0 빌드 방법과 비교해 보는 것도 좋을 듯 하다.


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

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

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

How to build the C++ boost library 1.54.0 on windows  (0) 2013.08.15
boost library 1.45.0 build on windows  (0) 2010.12.29
boost library  (0) 2010.12.28

boost library


만약, 이 글을 읽는 여러분이 진지하게 C++의 고수가 되고자 한다면, 
개인적으로 boost library(이하 boost)는 반드시 공부해야 할  중요한 도구라고 말하고자 한다.
(물론, 그 전에 STL 부터 보고 와야 한다. 무엇보다 표준이 우선이다.)

boost 라이브러리는 편하게 생각하자면, 
C++의 서브셋 라이브러리라고 생각하면 좋다.
98년 표준안 완료 당시 표준 문서의 마감이 서둘러 진행되는 흐름이 있었고,
많은 라이브러리 제안들이 표준안에 포함되지 못하였다.

이에 반발한 개발자들이 boost library community를 발족하고,
차기 표준안에 등재되기 위한 라이브러리 작업을 해온 것이 boost의 시초라고 한다.

boost는 매우 다양하고 유용한 C++ 라이브러리들을 제공하며,
세계 각국의 우수한 프로그래머들이 리뷰하고 직접 프로젝트에 사용하여 
사용성 및 안정성을 검증 받고 있다.

boost는 기본적으로 C++ Standard Library와 잘 동작하는 것을 우선으로 하며,
매우 다양하고 넓은 범위의 어플리케이션 제작에 도움을 준다.
또한, 플랫폼에 독립적이므로 
최소한 Windows와 Linux 양쪽 만큼은 동일한 코드로 동일한 동작을 보장한다.
더 좋은 것은, 상업적/비상업적 용도에 모두 자유롭게 쓸 수 있다.

boost에 포함되어 있던 라이브러리 중 10개는 이미 TR1에 포함되어 있으며,
TR1 외에도 몇몇 라이브러리들이 포함된 새로운 C++0x 표준화 작업이 막바지에 있다.
또한, 다수의 boost 라이브러리들이 TR2로 제안되고 있다.

이후 boost 카테고리에서는 
개인적으로 사용해 왔거나 새로 사용하게 되는 boost의 라이브러리들에 대해 
간단히 다루어 볼 예정이다.