예절이 바르다는 것은 자기의 마음 속에 있는 말 중에서 어떤 것을 선택해서 해야 할지 아는 기술. ―M.D.S.
[[Include(분류/Cpp)]]
1 개요 #
- 메인 홈페이지 :
http://www.boost.org
- C++ 표준에 채택되지 않은 기능을 공개적으로 구현하는데서 출발한 라이브러리 모음. 꽤 방대합니다. 짬짬히 분석할 생각...
- 초심자는 /introduction을 읽어보세요.
- STL을 모르시는 분은 먼저 공부하시고 쓰시는게 좋습니다.
- 현재 릴리스 : 1.37
3 mingw에서의 설치법 #
- 적당한 곳에 boost 배포본 압축을 푼다음, msys를 통하여 해당 디렉토리로 이동합니다.
- 아래와 같이 환경변수를 설정합니다.
export MINGW_ROOT_DIRECTORY="/mingw"
- bjam을 실행하여 설치합니다. (없으면 boost 홈페이지에서 미리 컴파일된 버전을 다운받아 /usr/bin같은데 설치합니다)
bjam "-sTOOLS=mingw" install
- 모두 빌드되면 C:/boost 디렉토리에 include와 lib라는 디렉토리가 생겨있을 겁니다. 이를 적당한 폴더에 복사합니다. (저는 /usr/local 에 해당하는 C:/msys/1.0/local 에 복사하여 사용합니다.)
4.1 regex, python등과 같은 링크가 필요한 라이브러리 컴파일하기 #
- 가급적 식사시간 직전에 한다. (절라 오래걸림.
)
- 우선 소스를 적당한데 풀고 tools/build/jam_src 디렉토리로 이동합니다.
- ./build.sh 라고 실행합니다. 빌드가 끝나면 bin.cygwinx86이라는 디렉토리가 생겨있습니다. 여기에 있는 실행화일들을 모두 /usr/bin에 복사합니다.
- 다시 소스루트디렉토리로 돌아옵니다.
- bjam "-sTOOLS=gcc gcc-nocygwin" 이라고 실행합니다.
- 밥먹으러 갑니다.
- 다됐으면 boost 디렉토리를 /usr/local/include에 복사합니다. (/usr/include에 복사하면 컴파일 오류가 발생합니다. 아마도 디렉토리 우선순위 순서때문인듯...)
6 문서 번역 #
- /MultiArray - 다차원 배열 컨테이너.
- /regex - 정규표현식 라이브러리.
- /graph - 유명한 boost 그래프 라이브러리입니다. 하나하나 번역하면서 공부해볼 생각입니다.
- /MPL - metaprogramming에 관한 라이브러리. 컴파일시점에서 무언가 분기시점을 결정할 수 있는 재미있는 기법.
- /random - messane twister 알고리즘을 비롯한 각종 의사난수 알고리즘들을 모아놓았습니다.
- /pool - 메모리 풀링관련 라이브러리입니다. 자질구레한 메모리할당/해제가 자주일어나는 경우 유용합니다. ACE_local_memory_pool 클래스도 비슷한 역할을 하지만 boost::pool이 더 직관적이고 강력합니다.
- /any - 다용도 타입변환 1-value 컨테이너입니다. 가끔은 이런 기능이 필요할 때가 있지요. 스크립트 엔진과 같이 활용할 경우 유용합니다.
- /format - 특정 문자열을 출력하고자 할 때(하지만 표준출력이 아닐경우) 주로 사용하는 sprintf() C 문자열 조합 함수를 아주 확실히 대체할 수 있는 클래스.
- /dynamic_bitset - std::bitset 클래스를 실시간에서 가변 길이 컨테이너로 변환한 것입니다. 비트 연산이 필요할 경우 유용.








