기본카테고리

[C++]boost 라이브러리 만들기

DevReff 2014. 12. 30. 09:52
728x90
728x90
SMALL

< Install Boost.Build>

Boost.Build is a text-based system for developing, testing, and installing software. First, you'll need to build and install it. To do this:
1.Go to the directory tools\build\.
2.Run bootstrap.bat
3.Run b2 install --prefix=PREFIX where PREFIX is the directory where you want Boost.Build to be installed
4.Add PREFIX\bin to your PATH environment variable.

 

<64비트 컴파일>
1. bootstrap 실행
2. b2 -j4 -a --without=mpi --without=python --toolset=msvc-12.0 variant=debug,release link=static threading=multi address-model=64 runtime-link=shared stage


 

 

--toolset=msvc-10.0
 
: Visual Studio 2010 을 이용해 컴파일함을 알려준다. 다른 버전을 사용할 경우에는 그에 맞는 버전을 지정하면 된다.
 
--architecture=x86
 
: 아키텍쳐를 지정한다. x86이나, x64라면 디폴트 값으로 x86으로 지정되고 IA64의 경우에는 --architecture=ia64
 
address-model=64
 
: 주소 모델을 지정한다. x64로 빌드할것이므로 64 를 지정한다. 지정안한다면 32가 디폴트 값으로 사용된다.
 
link=static
 
: 어떤 형태로 빌드할 것인지 나타낸다. static(lib), shared(dll) 두가지 옵션이 있다. link=static,shared 로 둘다 지정도 가능
 
runtime-link=static,shared
 
: 사용하는 C - Runtime Library 를 어떻게 연결할 것인지를 나타낸다. 나는 둘 다 지정했다.
 
variant=release
 
: 빌드된 라이브러리가 릴리즈용인지, 디버그 용인지를 나타낸다. variant=release,debug 와 같이 지정도 가능.
 
--without=mpi
 
--without=python
 
: 부스트 라이브러리는 사용을 위해 또 다른 라이브러리가 이미 설치 되 있어야 하는 경우도 있다. MPI 가 그 경우.
  나는 MPI와 파이썬을 사용하지 않으므로 둘 다 빌드하지 않겠다는 옵션을 주었다.
 
--stagedir=stage64_lib_release 
 
: 빌드된 라이브러리들이 위치 할 폴더. %BOOSTROOT% \ %STAGEDIR% 에 생성된다.
 
stage
 
: Stage 옵션. 헤더파일을 제외하고 라이브러리만 생성한다.
 
-j 2
 
: 쓰레드를 이용해 동시에 몇개의 작업을 할 것인가, 이경우는 두개의 작업을 동시에 하겠다고 옵션을 주었다.
 
 
 
 
 
 
생성된 라이브러리는 아래와 같다.
 
 
 
 
생성된 부스트 라이브러리 네이밍에 대해서 알아보자.
 
boost
: 이 파일이 link=shared 옵션으로 생성된 DLL 파일임을 나타낸다. LIB 파일이라면 libboost 로 시작한다.
 
libboost
: 이 파일이 link=static 옵션으로 생성된 LIB 파일임을 나타낸다.
 
data_time
: 라이브러리 이름을 나타낸다
 
vc100
: 컴파일하는데 사용된 툴과 버전을 나타낸다. vc 10.0 버전을 사용하였다.
 
mt
: 이 멀티 쓰레드용 부스트 라이브러리임을 나타낸다.
 
s
: runtime-link=static 옵션으로 C - Runtime Library 가 static 으로 링크 되었음을 알려준다.
 
g
: variant:debug 옵션으로 C - Runtime Library 가 디버그 버전으로 링크 되었음을 알려준다.
 
d
: variant:debug 옵션으로 이 부스트 라이브러리가 디버거 버전으로 컴파일 되었음을 알려준다.
 
1_46_1
: 부스트 라이브러리의 버전을 알려줌
 
 
 
LIB 파일들을 정리해보면, 
 
libboost_mt 
: 멀티 쓰레드용 릴리즈 버전, C Runtime Library 는 shared 방식으로 링크됨. 비주얼 스튜디오 /MT 옵션용 라이브러리
 
libboost_mt_gd
: 멀티 쓰레드용 디버그 버전, C Runtime Library 는 shared 방식으로 링크됨. 비주얼 스튜디오 /MTd 옵션용 라이브러리
 
libboost_mt_s
: 멀티 쓰레드용 릴리즈 버전, C Runtime Library 는 static 방식으로 링크됨. 비주얼 스튜디오 /MD 옵션용 라이브러리
 
libboost_mt_sgd
: 멀티 쓰레드용 디버그 버전, C Runtime Library 는 static 방식으로 링크됨. 비주얼 스튜디오 /MDd 옵션용 라이브러리
728x90
728x90
LIST