Boost python Build¶
boost python¶
- SWIG, SIP 처럼 중간 언어가 필요 없고 가장 편리하고 많이 사용됨
- boost 빌드.. python 과 같이 빌드 하려면 설정 필요
- 참고1 : http://blog.naver.com/PostView.nhn?blogId=atelierjpro&logNo=220964808517&parentCategoryNo=&categoryNo=25&viewDate=&isShowPopularPosts=false&from=postView
- 참고2 : http://www.boost.org/doc/libs/1_66_0/libs/python/doc/html/building/configuring_boost_build.html
- 참고3 : http://ppiazi.tistory.com/entry/Boost-python-visual-studio-2010
windows¶
boost 빌드¶
bootstrap.bat 실행해서 project-config.jam 파일 생성 & 수정¶
import option ;
using msvc ;
using python : 3.6 : C:\Users\moon_hyunsick\AppData\Local\Programs\Python\Python36 : : : 64 ;option.set keep-going : false ;
아래 명령으로 빌드 실행¶
b2 -j8 --toolset=msvc-14.1 --build-type=complete architecture=x64 address-model=64 stage
ubuntu¶
python 설치¶
apt-get install python3.6-dev
- 뒤에
-dev
를 붙이지 않으면 boost 빌드 중pyconfig.h
못 찾는다고 에러 뜸
boost 빌드¶
- python 버전 명시하면서 bootstrap 실행해서
project-config.jam
생성하기./bootstrap.sh --with-python=python3.6
./b2
실행해서 빌드
eclipse 프로젝트 설정¶
include¶
usr/include/python3.6
usr/local/boost (boost 소스 위치)
library¶
boost_python3
python3.6m
/usr/local/boost/stage/lib
/usr/local/lib
Linker - shared library setting : shared check¶
C++ - Miscellaneous : -fPIC check
boost_python의 동적 라이브러리 위치 지정 필요
- /usr/local/lib 에 복사하고.. sudo ldconfig 명령으로 링크 확인함
- ldd 로 dependency 확인
- /etc/ld.so.conf.d/ 폴더에서 *.conf 를 읽어서 라이브러리를 탐색하기 때문에 boost_python.conf를 만들어야 할지 고려해 보자
주의 사항¶
- ImportError: dynamic module does not define init function (initboost_python_test)
python2
버전 파이썬 실행파일로python3
버전의 파이썬 모듈을 실행했을 때 발생하는 에러... 내 시간.. -_ ㅜ- 의도치 않게
python2
와python3
가 함께 설치되어 있을 수 있기 때문에 주의