Visual Studio 2013 Boost Library Compile
1. 부스트 라이브러리 최신 버전이나 필요한 버전을 다운 받는다.
- 이 글 작성시 부스트 최신 버전 : 1_58_0
부스트 공식 홈( http://www.boost.org ) 또는
SourceForge 다운로드 http://sourceforge.net/projects/boost/files/
컴파일을 하지 않고 바로 사용 할려면 컴파일된 x32, 또는 x64 파일을 다운
http://sourceforge.net/projects/boost/files/boost-binaries/1.58.0/
Boost_1_58_0-bin-msvc-all-32-64.7z 1.3GB (x32, x64 비주얼 스튜디오 모든 버전 포함)
x64 크로스 Tools 명령 프롬프트에서는 x86환경에서 x64 컴파일 가능.
x86, x64 네이티브에서는 각 각 x32 , x64 컴파일 가능.
*** 미리 컴파일된 버전을 사용하지 않고 직접 컴파일해서 사용 하고자 한다면 ***
Boost 라이브러리는 두가지 방법으로 컴파일 할 수 있는데,
헤더 파일과 라이브러리를 생성하는 방법과, 라이브 러리를 생성 하는 방법이 있습니다.
처음 설치 한다면 헤더(Header)와 라이브러리(Library)가 필요 하므로 install 옵션을 쓰고
추가적으로 라이브러리(Library)가 필요하다면 stage를 쓰면 됩니다.
부스트 라이브러리 루트 폴더에 boostrap.bat 실행해서 b2.exe와 bjam.exe를 생성 합니다.
2개다 같은 일을 하지만 여기서는 b2.exe으로 설명 합니다.
b2 [options] [properties] [install|stage]
VS 2013 기준(msvc-12.0), VS 2012 : msvc-11.0)
--stagedir (라이브러리 파일이 있는 stage 폴더내에 복사
--libdir을 지정 해주면 원하는 폴더로 복사( --libdir="C:\Boost\lib" )
--includedir 위 와 마찬가지( --includedir="C:\Boost\include" )
-j n - CPU 멀티 코어 사용 ( n : 코어 갯수 지정 )
x32 라이브러리
/MT, /MTd (멀티 스레드 릴리즈, 멀티 스레드 디버그) : 정적 라이브러리 생성( .LIB )
b2 --stagedir=stage32 --toolset=msvc-12.0 -j 4 runtime-link=static
/MD, /MDd (멀티 다이나믹, 멀티 다이나믹 디버그 ): 동적 라이브러리 생성( .DLL )
b2 --stagedir=stage32 --toolset=msvc-12.0 -j 4 runtime-link=shared
x64 라이브러리
/MT, /MTd (멀티 스레드 릴리즈, 멀티 스레드 디버그) : 정적 라이브러리 생성
b2 --stagedir=stage64 address-model=64 --toolset=msvc-12.0 -j 4 runtime-link=static
/MD, /MDd
b2 --stagedir=stage64 address-model=64 --toolset=msvc-12.0 -j 4 runtime-link=shared
컴파일 결과파일 이름(Naming) 규칙
- lib 접두사 - Win32에서 Static 라이브러리에 붙음.
- boost - 접두사 모든 파일 앞에 붙음.
- vc120 - 비주얼 스튜디오 버전별로( 2012 : vc110, 2010 : vc100 )
- mt - Shared 멀티 스레드용(multi-threading) 릴리즈 버전
- mt-gd Shared 방식으로 멀티 스레드용(multi-threading) 디버그 버전
- mt-s Static 방식으로 릴리즈
- mt-sgd Static multi-threading 디버그 버전
- 1_58 - 부스트 버전.
- .lib - 확장자
컴파일 예제 :
C:\Boost에 Visual Studio 2013버전 x32, x64 디버그, 릴리즈
싱글, 멀티스레딩(정적, 동적 라이브러리)를 멀티코어 4개로 컴파일
b2 --libdir="C:\Boost\lib" --libinclude="C:\Boost\include"
--toolset=msvc-12.0 variant=debug,release address-model=32,64
threading=single,multi -j 4 runtime-link=static,shared
컴파일 결과 : C:\Boost\Lib, C:\Boost\Include 생성 lib 폴더내에 .lib, .dll 파일 생성
'C++' 카테고리의 다른 글
C++ 빌드 후 이벤트에서 파일을 복사 하지 못할때 :VCEnd (0) | 2015.06.09 |
---|---|
C++ 디버깅시 STL Code No Step Into 방지 하기 (0) | 2015.06.09 |
이클립스(Eclipse) MinGW Boost 라이브러리(Library) 링커(Linker) 하는 방법 (0) | 2015.05.16 |
C++에서 MFC나 #import를 사용하지 않고 Excel을 자동화하는 방법 (0) | 2014.06.25 |