[Others] Boost 빌드 방법
1. 개요
boost 라이브러리를 사용할 때 웬만하면 빌드 없이 헤더파일 추가로 바로 사용이 가능하다.
하지만 Boost.Python
과 같은 몇몇 라이브러리는 빌드를 해야 사용이 가능하다.
2. 윈도우에서 빌드
Visual Studio가 설치된 환경에서 빌드를 진행한다.
(1) 개발자 명령 프롬프트(Developer Command Prompt) 실행
Visual Studio에서 도구-명령줄-개발자 명령 프롬프트
를 실행하거나, 시작 메뉴에서 Developer Command Prompt
를 검색하여 실행한다.
(2) bootstrap.bat
실행
개발자 명령 프롬프트에서 boost 폴더로 이동하여 아래 명령어를 실행한다.
$ bootstrap.bat
(3) project-config.jam
파일 수정
project-config.jam
파일을 열어 아래와 같이 수정한다.
사용하고자 하는 파이썬 버전에 따라 내용을 작성한다.
# Boost.Build Configuration
# Automatically generated by bootstrap.bat
import option ;
using msvc ;
using python : 3.7 : "C:\\Program Files\\Python37\\python.exe" : "C:\\Program Files\\Python37\\include" : "C:\\Program Files\\Python37\\libs" : <address-model>64 ;
using python : 3.8 : "C:\\Program Files\\Python38\\python.exe" : "C:\\Program Files\\Python38\\include" : "C:\\Program Files\\Python38\\libs" : <address-model>64 ;
using python : 3.9 : "C:\\Program Files\\Python39\\python.exe" : "C:\\Program Files\\Python39\\include" : "C:\\Program Files\\Python39\\libs" : <address-model>64 ;
using python : 3.10 : "C:\\Program Files\\Python310\\python.exe" : "C:\\Program Files\\Python310\\include" : "C:\\Program Files\\Python310\\libs" : <address-model>64 ;
using python : 3.11 : "C:\\Program Files\\Python311\\python.exe" : "C:\\Program Files\\Python311\\include" : "C:\\Program Files\\Python311\\libs" : <address-model>64 ;
using python : 3.12 : "C:\\Program Files\\Python312\\python.exe" : "C:\\Program Files\\Python312\\include" : "C:\\Program Files\\Python312\\libs" : <address-model>64 ;
using python : 3.13 : "C:\\Program Files\\Python313\\python.exe" : "C:\\Program Files\\Python313\\include" : "C:\\Program Files\\Python313\\libs" : <address-model>64 ;
option.set keep-going : false ;
(4) b2
명령어 실행
$ b2 -j4 -a --toolset=msvc-14.3 --build-type=complete runtime-link=shared address-model=64 architecture=x86 python=3.7,3.8,3.9,3.10,3.11,3.12,3.13
(5) 빌드 완료 확인
빌드가 성공적을 완료되면 아래와 같은 메시지가 출력되며, 해당 경로에서 빌드된 헤더파일과 라이브러리를 확인할 수 있다.
The following directory should be added to compiler include paths:
C:\Path\to\boost\boost_1_83_0
The following directory should be added to linker library paths:
C:\Path\to\boost\boost_1_83_0\stage\lib
(6) 사용법
빌드된 헤더파일과 라이브러리를 사용하기 위해서는 프로젝트에 디렉토리를 추가하고, 라이브러리를 추가한다.
추가포함 디렉토리
(Python 설치경로)\include
(Boost 설치경로)
추가라이브러리 디렉토리
(Python 설치경로)\libs
(Boost 설치경로)\stage\lib
boost python은 dynamic linking이 기본 값이기 때문에 static lib를 사용하기 위해서는 #include <boost/python.hpp>
전에 #define BOOST_PYTHON_STATIC_LIB
를 추가해야 한다.
variant=release runtime-link=shared | -mt | /MD (Multi-threaded DLL) |
variant=debug runtime-link=shared | -mt-gd | /MDd (Multi-threaded Debug DLL) |
variant=release runtime-link=static | -mt-s | /MT (Multi-threaded) |
variant=debug runtime-link=static | -mt-sgd | /MTd (Multi-threaded Debug) |
3. 우분투에서 빌드
(1) 필요 패키지 설치
$ sudo apt install build-essential g++ python3-dev autotools-dev \
libicu-dev libbz2-dev libboost-all-dev
(2) 부트스트랩 스크립트 실행
$ ./bootstrap.sh --with-python=python3.12
(3) 빌드
$ b2 -j4 -a --build-type=complete runtime-link=shared address-model=64 architecture=x86 --with-python --layout=versioned