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


Updated: