BOOST 라이브러리 사이트 : http://www.boost.org
1. 설치 방법 1
more..
간단히 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..
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 추가 -> 확인