1. 程式人生 > >windows(msvc)下編譯boost庫

windows(msvc)下編譯boost庫

module mode iostream oot pan pytho define 命令提示符 markdown

下載&解壓

從 http://www.boost.org/ 上下載源碼並解壓

打開 vs 的本機工具命令提示符

  • cd boost_sourcecode_dir
  • bootstrap
  • 如果需要編譯 boost.python 需要在 boost_sourcecode_dir\tools\build\example\user-config.jam 中添加如下內容:

    using msvc : 14.0 ;
    using python : 2.7 : F:\\ProgramData\\Anaconda2 : F:\\ProgramData\\Anaconda2\\include : F:\\ProgramData\\
    Anaconda2\\libs
  • 使用 b2 命令進行編譯,具體的命令行參數可以在 boost_sourcecode_dir\Jamroot 文件中查看,如果要編譯 x64 ,記得 加上 address-model=64, 否則默認同時編譯32位和64位

在vs工程中引入動態庫/靜態庫

  • 如果要使用 Boost.Python ,記得引入 python 的 include 和 libs
  • 使用動態鏈接庫,需要 #define BOOST_ALL_DYN_LINK

Boost.Python 版 helloworld

#define BOOST_ALL_DYN_LINK

#include <iostream>
#include <boost/python.hpp> void hello() { std::cout << "hello, world" << std::endl; } BOOST_PYTHON_MODULE(helloworld) { using namespace boost::python; def("hello", &hello); }
  • 需要註意的是,BOOST_PYTHON_MODULE(helloworld)必須與輸出的pyd文件名一致,在工程屬性中把目標文件擴展名改為.pyd,配置類型選擇dll
  • 生成的 .pyd 文件可以直接在python中import

windows(msvc)下編譯boost庫