검색결과 리스트
bjam에 해당되는 글 1건
- 2012.07.31 boost 라이브러리 빌드 하기 (9)
대부분의 boost 라이브러리는 원하는 기능의 헤더 파일을 포함하면 사용할 수 있지만 OS의 기능을 사용하는 것들은 빌드를 해야 합니다.
저는 boost 라이브러리 1.50을 다운로드 받아서
E:\Dev\CommonLib\boost_1_50_0
디렉토리에 압축을 풀었습니다.
먼저 빌드 실행 파일을 만들기 위해서 위의 디렉토리에서 bootstrap.bat 를 실행합니다.
디렉토리에 b2.exe와 bjam.exe 파일 두개가 만들어졌습니다.
저는 이중 bjam.exe를 사용하여 빌드를 하였습니다. 참고로 예전에는 bjam.exe를 사용하였으나 근래에는 b2.exe로 넘어가는 추세입니다.
제 컴퓨터에는 VC10과 VC11(RC 버전)이 있는데 기본적으로 가장 최신의 VC를 대상으로 빌드를 하는 것 같습니다.
물론 옵션을 지정하면 VC 버전이나 64비트, 빌드 출력 디렉토리도 지정할 수 있습니다.
옵션으로 디렉토리를 지정하지 않으면 라이브러리 파일은 stage\lib 디렉토리에 생성됩니다.
추가
위의 방식으로 하면 '런타임 라이브러리 정적 링크' 라이브러리(빌드 후 만들어지는 lib 파일에 -sgd 가 붙는)가 만들어 지지 않습니다.
그래서 저는 다시 b2.exe 파일을 사용하여 빌드를 했습니다.
b2.exe 명령어를 사용할 때 옵션으로 -prefix (빌드 라이브러리가 생성될 디렉토리)를 붙이지 않으면 이상한 곳에 만들어질 수 있으니 꼭 붙여야 합니다.
저는 stage/lib 디렉토리에 만들어지게 하고 싶어서 다음과 같이 했습니다.
b2 -prefix=.\stage\lib --toolset=msvc runtime-link=static
예)
VS 2005
/MT, /MTd
b2 -prefix=.\stage\lib --toolset=msvc-8.0 runtime-link=static
/MD, /MDd
b2 -prefix=.\stage\lib --toolset=msvc-8.0 runtime-link=shared
VS 2012
/MT, /MTd
b2 --stagedir=stage --toolset=msvc-11.0 runtime-link=static
/MD, /MDd
b2 --stagedir=stage --toolset=msvc-11.0 runtime-link=shared
64비트
/MT, /MTd
b2 --stagedir=stage64 address-model=64 --toolset=msvc-11.0 runtime-link=static
/MD, /MDd
b2 --stagedir=stage64 address-model=64 --toolset=msvc-11.0 runtime-link=shared
빌드 방법 참고
1. Boost 라이브러리 빌드 링크 모음
http://jacking.tistory.com/1068
2. (일본어) http://blog.goo.ne.jp/nourea/e/8028f3c519e881dac5885575e4a0a96f
3. Boost 빌드 http://lunapiece.net/Article/27356
댓글
근데 filesystem, thread 등과 같은 라이브러리들은 왜 컴파일해서 사용하는거죠?
OS에 종속적인 기능은 헤더파일만으로는 사용하기 어려운건가요?
헤더파일만으로 사용할 수 있습니다. 그런데 제가 실제해보니 이리저리 컴파일 에러가 나서 쉽지는 않더군요 -_-;. 저는 처음부터 OS 종속적인 것들은 lib 파일 만들어서 사용하는 걸로 알고 있어서 지금은 별로 거부감 없이 사용하고 있습니다.
음. 그렇군요 댓글 감사합니다 ^^
안녕하세요.^^ 부스트 빌드찾아보다.. 들어왔습니다..
혹시 내용좀 퍼가도 괜찮을까요?ㅎㅎ
출처만 표기해 주신다면 펌은 언제라도 괜찮습니다^^
감사합니다.^^
좋은정보 얻어가지고 갑니다. 감사합니다.
bootstrap.bat 를 클릭했더니 mspdb110.dll이없어서 프로그램을 시작할수없다는데 로드하는법을 가르쳐주실수있으신가요?
VC용으로 빌드된 Boost 라이브러리 얻기 http://jacking.tistory.com/1178 여기 글 참고해서 이미 빌드한 라이브러리 사용하세요