boost 설치

2007/08/16 14:10

BOOST 라이브러리 사이트 : http://www.boost.org
 
1. 설치 방법 1

[ more.. | less.. ]
간단히 Include 해서 쓸 때
  • VC++ 7.1 설치 (Microsoft Visual Studio .NET 2003)

    • 링크된 주소를 따라가면 나오는 실질적인 boost 개발의 본진인 sourceforge
    • 지금까지 릴리즈된 리스트들이 있는데 역시나 최신 버젼을 설치해보자. 맘편히 zip 파일을 받자.

    • 받은 파일은 적당한에 압축을 풀자. C:\boost-1.30.2 라는 폴더를 만들어 이곳에 압축을 풀었다.
    • 이제 남은 건 VC++ 에서의 경로 설정뿐. 도구 - 옵션 - 프로젝트 - VC++ 디렉토리 - 포함 파일 에 C:\boost-1.30.2 경로를 추가하면 된다.



    • 이 정도면 일반적인 boost lib는 그냥 include 해서 사용가능하다.

기타 LIB
  • 테스트 코드에서 링커 에러가 발생하는 몇몇 lib
    • date_time 같은 lib 사용할때 몇몇 예제 코드에서 링커 에러가 발생하는 경우가 종종 있다. 이런 lib는 bjam을 이용해서 컴파일을 해주어야 한다.
    • http://www.boost.org/more/getting_started.html 에서 보면 그 방법에 순차적으로 나와있다.
    • 일단 boost 폴더 안에 빌드 프로그램이 있는데 (C:\boost-1.30.2\tools\build\jam_src) build.bat 실행하면 되지만 필자는 안되서 boost-jam 을 따로 받아서 설치했다. 물론 위치는 http://sourceforge.net/project/showfiles.php?group_id=7586
    • 일단 콘솔창 하나 띄우고 (실행에서 cmd 혹은 command) 시작하자
    • c:\boost-1.30.2 에서 압축을 풀고 난후 c:\boost-1.30.2\boost-build-2.0-m9.1\boost-build\jam_src\build.bat 를 실행한다. 알아서 vc++을 이용해서 bjam을 컴파일 한다. ( C 드라이브의 기본적인 경로에 VC++이 설치되어 있어야 한다. )




    • bin.ntx86 이라는 새로운 폴더에 jam 및 bjam에 생긴다.
    • C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin\vcvars32.bat 실행시켜 VC++ 경로를 설정한다.
    • C:\...>path %PATH%;c:\boost-1.30.2\boost-build-2.0-m9.1\boost-build\jam_src\bin.ntx86 과 같은 명령으로 경로을 일단 설정해주자.

    • 일단 boost 의 폴더를 이리 저리 뒤지다 보면 Jamfile 이라는 파일이 있다. 이런 파일이 있는 곳으로 이동에서 bjam 을 치면 자동으로 컴파일이 된다. doc 에서는 여러가지 옵션을 주었지만 별 상관 없는듯 하다. c:\boost-1.30.2\bjam.exe 으로 전체적으로 컴파일 하던지.. 아니면 c:\boost-1.30.2\libs\date_time\build\bjam.exe 같은 세부적인 lib를 각각 컴파일 해주어도 된다. 하지만 각각 해주는것이 좋을듯 하다. 전체적으로 컴파일할때와 각각 해주는 경우에 생성되는 파일 조금 달라서... 물론 커다란 문제는 없을듯 하다.

    • c:\boost-1.30.2\libs\date_time\build\bin\ 에 두가지 폴더가 생긴다. boost_lib명.dll 과 libboost_lib명.lib 이다. 그 각각의 폴더 안에서는 역시 컴파일러 별로 구분되어 있지만 일단 msvc 안에는 다시 debug와 release가 있고 다시 그 안에는 runtime-link-dynamic 폴더가 있다. (후~ 폴더도 많네...). 물론 그 폴더에 안에 우리가 원하는 lib와 dll 파일이 있다. 그 전에 runtime-link-dynamic 이외에도 bjam 에 옵셥을 주어 컴파일하면 runtime-link-static 결과물도 얻을 수 있다. (bjam -sTOOLS=vc7 -sBUILD="debug release <runtime-link>static/dynamic")




    • 이제는 하위 폴더를 일일이 뒤져가며 lib,dll 파일을 모아서 따로 보관하자. 필자는 c:\boost-1.30.2\lib 라는 폴더를 만들어 그 안에 보관했다. 필자의 경우 디버그/릴리즈, 동적/정적을 구분해서 보관했다.
    • 그리고 위에서 한것 처럼 VC++ 에서 옵션 - VC++ 디렉토리 - 라이브러리 파일 에 위 경로를 추가하자.
    • 그리고 해당 예제 코드를 컴파일시 해당 lib를 추가 후 사용하자. (주의! 다중 스레드 디버그 DLL(/MDd) 모드에서 컴파일하자)




    • 위 그림은 date_time 라이브러리를 사용하기 위해서 생성된 libboost_date_time.lib 파일을 추가해서 컴파일 한다. 물론 코드 상에서는 #pragma comment(lib, "libboost_date_time.lib") 넣어 주는것도 상관없다.

  • Boost.Regex++ 경우
    • 콘솔 모드
    • vc+ .../bin/vcvars32.bat
    • boost .../regex/bulid/nmake vc7.mak
    • nmake vc7.mak /install
    • nmake vc7.mak /clear
    • 그리고나서 생성된 build/vc7/*.lib 파일와 *.dll 파일을 boost lib 파일을 보관하는 폴더로 옮겨서 사용하면 된다.

  • Boost.Test 경우
    • Build 에 VC++을 위한 프로젝트들이 있다. 이중 boost_test_library.dsw 통해서 통체로 컴파일 할 수 있지만 prg_exec_monitor.dsp, test_exec_monitor.dsp, unit_test_framework.dsp 이 세 프로젝트를 컴파일해서 lib 파일을 얻을 수 있다. 이 파일을 링커에 걸고 코드를 컴파일 하면 된다.



2. 설치방법2

[ more.. | less.. ]



1. Download

   boost 파일 : http://sourceforge.net/project/showfiles.php?group_id=7586
   bjam 파일 : http://sourceforge.net/project/showfiles.php?group_id=7586&package_id=72941&release_id=423149

   * 각각 다운로드 받은 후 압축을 해제 합니다.
   * Visual studio 2005 를 사용하신다면 bjam 파일을 반드시 다운로드 받습니다.


2. bjam.exe 를 생성한다.

   a. Visual studio 6.0 일 경우
      $boostDir/tool/build/jam_src/build.bat  실행한다.
      $boostDir/tool/build/jam_src/bin.ntx86/bjam.exe  파일 생성 된것을 확인한다.
    b. visual studio 2005 일 경우
      $boostJamDir/build.bat 실행한다.
      $boostJamDir/bin.ntx86/bjam.exe 파일 생성된것을 확인한다.


3. bjam.exe 파일을 $boostDir 로 이동합니다.

   $boostDir 폴더에는 boost-build.jam 파일이 있어야 합니다.


4. $boostDir 로 이동한후 아래 명령을 실행시킵니다.

   a. visual studio 6을 사용할 경우
       bjam --prefix=d:\boost "-sTOOLS=msvc" install

   b. visual studio 2005 을 사용할 경우
       bjam --prefix=d:\boost "-sTOOLS=vc-8_0" install > build_history.txt

      ※ VC8 에서 빌드를 하다보면 libs/regex/src/regex_traits_defaults.cpp에서
         charset 문제로 인한 에러가 발생합니다. 아마 OS 로케일이 동아시아쪽일
         경우에 발생하는 것으로 보입니다.
         이 문제는 http://boost.cvs.sourceforge.net/boost/ 에서 해당 파일을
         다운로드 받아 다시 빌드하면 해결됩니다.
        에러가 발생한 위치는  build_history.txt 파일을 열어 보면 됩니다.


   * TOOLS 옵션으로는 -msvc, -vc7, vc-8_0이 존재합니다.
      http://www.boost.org/more/getting_started.html#step2


   * 참고) 컴파일 시간이 무지 오래 걸립니다... .......


  ※ Boost와 STLport의 혼용
     Boost는 내부에서 STL라이브러리를 사용합니다. VC로 boost를 빌드하는 경우 VC와
     함께 설치되는 STL라이브러리나 STLport 중 하나를 선택해 빌드해야 합니다.
     하지만 VC8(VS.NET 2005)로 빌드할 경우에는 STLport를 사용할 수 없습니다.
     따라서, boost 라이브러리를 사용한다면 차라리 STLport를 설치하지 않는 것이
     include 설정에 대한 혼동을 막을 수 있습니다.


5. d:\boost 폴더에서 include 파일과 lib 파일이 있는지 체크 합니다.
    * lib 폴더에는 반드시 컴파일된 dll, lib 파일이 있어야 합니다.


6. Visual studio 에서 boost 폴더 참조 시키기.
   a. visual studio 6 일 경우

      도구 -> 옵션 -> ... (프로그램을 삭제해서 기억 안남)

   b. visual studo 2005 일 경우

      도구 -> 옵션 -> 프로젝트 및 솔루션  -> VC++ 디렉터리 ->
      [우측화면]  다음파일의 디렉터리 표시 ->
         1. 포함파일 선택 -> D:\boost\include\boost-1_33_1 추가
         2. 라이브러리 파일 선택 -> D:\boost\lib 추가   -> 확인


Tags

boost