본문 바로가기

언어/C++

Boost 라이브러리 설치

출처: http://codens.info/653?category=173851


* Boost  C++ Library  설치방법

- version 1.55.0 기준

http://www.boost.org/

    - 다운로드 : http://sourceforge.net/projects/boost/files/boost/


    - 환경변수 설정 : Boost_root = 압축푼 경로


    - %Boost_root%\bootstrap.bat 실행
        - Bjam.exe, b2.exe 생성됨


    - 라이브러리 빌드(build)(Visual Studio 2010, VC10 기준)
      - b2.exe 옵션 : http://www.boost.org/boost-build2/doc/html/bbv2/overview/invocation.html

b2 toolset=msvc-10.0  link=static  runtime-link=static,shared 
    - 생성파일 : ex) libboost_atomic-vc100-mt-1_55.lib
        Release [ -mt-s- (static), -mt- (shared)  ], Debug [ -mt-sgd-, -mt-gd- ]

b2 toolset=msvc-10.0  link=shared
    - 생성파일 : ex) boost_atomic-vc100-mt-1_55.lib , 같은 이름 dll
        Release [ -mt- ], Debug [ -mt-gd- ]



    - 프로젝트 설정
        - Include 경로 추가  $(Boost_root)
        - library 경로 추가  $(Boost_root)\stage\lib


    - 환경변수에서 실행경로 추가 : %Boost_root%\stage\lib



//===============
//추가 
* boost_1_58_0 , Visual Studio 2013(VC12)의 경우
> b2 toolset=msvc-12.0  link=static  runtime-link=static,shared 
    - 컴파일 시간 : 20분
    - 용량 : 62M -> 430M -> 4.6G

     


//===========================
- 샘플 프로젝트 빌드시 에러처리

asio samples : http://sourceforge.net/projects/asio-samples/
    - cannot open file libboost_system-vc100-mt-sgd-1_55.lib
    -> 해결 방법 : lib 빌드시 옵션으로 link=static  runtime-link=static 설정

- 모든 프로젝트가 static library 와 link되는 문제
    - Multi-threaded Debug DLL (/MDd) 설정을 해도  libboost_XXX.lib 와 연결되는 문제

- DLL 사용하도록 컴파일(Compile) 방법

    -> 해결 방법 :  %Boost_root%\boost/config/user.hpp 수정
        #define BOOST_ALL_DYN_LINK  <-- 주석 해제



//=================================
- Library Naming(라이브러리 파일 이름 명명 규칙)
http://www.boost.org/doc/libs/1_42_0/more/getting_started/windows.html#library-naming
    - lib로 시작하면 static, DLL파일 없음
    - mt = multi threading

    - s : static , [b2 option 에서 runtime-link=static 으로 설정]
    - d : 디버그 버전

    - g : 디버그 버전 사용함
    - y : Python debug
    - p : STLPort 표준 lib 를 우선적으로 사용함