linux下编译Boost库

下载源码

boost_1_66_0.tar.gz

生成编译工具

# tar axf boost_1_66_0.tar.gz
# cd boost_1_66_0
# yum install gcc gcc-c++ python-devel cmake -y
# ./bootstrap.sh

编译64位boost库

# ./b2 install --with-system --with-thread --with-date_time --with-regex --with-serialization --with-python link=shared runtime-link=shared threading=multi debug

设置boost动态库加载路径

# tee /etc/ld.so.conf.d/boost-x86_64.conf << EOF
/usr/local/lib
EOF
# ldconfig

CMakeLists样例

# vim CMakeLists.txt
cmake_minimum_required(VERSION 2.8)
project(test)

### 此处的动态库名必须和BOOST_PYTHON_MODULE()中定义的保持一致,即最后生成的库必须名为hello.so
set(SRC main.cpp)
add_library(hello SHARED ${SRC})
set_target_properties(hello PROPERTIES PREFIX "")

#dependencies
INCLUDE(FindPkgConfig)
pkg_check_modules(PYTHON REQUIRED python)
include_directories(/usr/local/include ${PYTHON_INCLUDE_DIRS})
link_directories(/usr/local/lib)
target_link_libraries(hello boost_python)